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 的檔案,其中intlong 是 32-bit(32 位元)的值。這通常透過將相關大小和偏移量 (offset) 種類定義為 64-bit 值來實作。此類檔案有時被稱為「大檔案 (large files)」。

off_t 的大小大於longlonglong 的大小至少與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 模組。