# `posix` --- 最常見的 POSIX 系統呼叫

該模組提供對由 C 標準和 POSIX 標準（一種偽裝的 Unix 介面）所標準化的作業系統功能的存取。

適用：Unix。

不要直接引入此模組。請改為引入 `os` 模組，它提供了此介面的可移植 (portable) 版本。在 Unix 上，`os` 模組提供了 `posix` 介面的超集 (superset)。在非 Unix 作業系統上，`posix` 模組不可用，但始終可以通過 `os` 介面使用一個子集。一旦 `os` 有被引入，使用它代替 `posix` 不會有性能損失。此外，`os` 提供了一些額外的功能，例如當 `os.environ` 中的條目更改時自動呼叫 `putenv()`。

錯誤會以例外的形式被回報；常見的例外是因為型別錯誤而給出的，而系統呼叫回報的錯誤會引發 `OSError`。

## 對大檔案 (Large File) 的支援

一些作業系統（包括 AIX 和 Solaris）支援來自 C 程式模型且大於 2 GiB 的檔案，其中 int 和 long 是 32-bit（32 位元）的值。這通常透過將相關大小和偏移量 (offset) 種類定義為 64-bit 值來實作。此類檔案有時被稱為「大檔案 (large files)」。

當 `off_t` 的大小大於 long 且 long long 的大小至少與 `off_t` 相同時，對大檔案的支援會被啟用。可能需要使用某些編譯器旗標來配置和編譯 Python 以啟用此模式。例如，對於 Solaris 2.6 和 2.7，你需要執行如下操作：

    CFLAGS="`getconf LFS_CFLAGS`" OPT="-g -O2 $CFLAGS" \
            ./configure

在支援大檔案的 Linux 系統上，這可能有效：

    CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \
            ./configure

## 值得注意的模組內容

除了 `os` 模組說明文件中描述的許多函式外，`posix` 還定義了以下資料項目：

posix.environ

  表示直譯器啟動時的字串環境的字典。鍵和值在 Unix 上是位元組，在 Windows 上是 str。例如，`environ[b'HOME']`（Windows 上為 `environ['HOME']`）是你的主目錄的路徑名，等同於 C 語言中的 `getenv("HOME")`。

  修改這個字典不會影響由 `execv()`、`popen()` 或 `system()` 傳遞的字串環境；如果你需要更改環境，請將 `environ` 傳遞給 `execve()` 或將變數賦值和匯出陳述句新增到 `system()` 或 `popen()` 的指令字串中。

  在 3.2 版的變更: 在 Unix 上，鍵和值是位元組。

  備註

  `os` 模組提供了 `environ` 的替代實作，會在修改時更新環境。另請注意，更新 `os.environ` 將使該字典變成過時的。建議使用 `os` 模組版本，而不是直接存取 `posix` 模組。