posix — 最常見的 POSIX 系統呼叫


此模組提供對 C 標準和 POSIX 標準(一個經過輕微偽裝的 Unix 介面)標準化的作業系統功能的訪問。

可用性:Unix。

不要直接匯入此模組。 而是匯入模組 os,它提供此介面的可移植版本。在 Unix 上,os 模組提供了 posix 介面的超集。在非 Unix 作業系統上,posix 模組不可用,但始終可以透過 os 介面獲得子集。一旦匯入 os,使用它代替 posix沒有效能損失。此外,os 提供了一些額外的功能,例如在 os.environ 中的條目發生更改時自動呼叫 putenv()

錯誤以異常形式報告;通常的異常是型別錯誤,而系統呼叫報告的錯誤會引發 OSError

大檔案支援

多個作業系統(包括 AIX 和 Solaris)提供了對大於 2 GiB 的檔案的支援,其 C 程式設計模型中 intlong 是 32 位值。這通常是透過將相關的大小和偏移型別定義為 64 位值來實現的。此類檔案有時稱為大檔案

off_t 的大小大於 long 並且 long long 至少與 off_t 一樣大時,Python 中會啟用大檔案支援。可能需要使用某些編譯器標誌配置和編譯 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 上是字串。例如,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 模組。