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


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

Availability: 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 的大小大於 longlong 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 模組。