posix --- 最常見的 POSIX 系統(tǒng)調用?


此模塊提供了對基于 C 標準和 POSIX 標準(一種稍加修改的 Unix 接口)進行標準化的系統(tǒng)功能的訪問。

請勿直接導入此模塊。 而應導入 os 模塊,它提供了此接口的 可移植 版本。 在 Unix 上,os 模塊提供了 posix 接口的一個超集。 在非 Unix 操作系統(tǒng)上 posix 模塊將不可用,但會通過 os 接口提供它的一個可用子集。 一旦導入了 os,用它替代 posix 時就 沒有 性能懲罰。 此外,os 還提供了一些附加功能,例如在 os.environ 中的某個條目被修改時會自動調用 putenv()

錯誤將作為異常被報告;對于類型錯誤會給出普通異常,而系統(tǒng)調用所報告的異常則會引發(fā) OSError。

大文件支持?

某些操作系統(tǒng)(包括 AIX, HP-UX 和 Solaris)可對 intlong 為 32 位值的 C 編程模型提供大于 2 GiB 文件的支持。 這在通常情況下是以將相關數(shù)據(jù)長度和偏移類型定義為 64 值的方式來實現(xiàn)的。 這樣的文件有時被稱為 大文件。

Python 中的大文件支持會在 off_t 的大小超過 longlong long 的大小至少與 off_t 一樣時被啟用。 要啟用此模式可能必須在啟用特定編譯旗標的情況下來配置和編譯 Python。 例如,在 Solaris 2.6 和 2.7 中你需要執(zhí)行這樣的操作:

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

在支持大文件的 Linux 系統(tǒng)中,可以這樣做:

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

重要的模塊內容?

除了 os 模塊文檔已說明的許多函數(shù),posix 還定義了下列數(shù)據(jù)項:

posix.environ?

一個表示解釋器啟動時間點的字符串環(huán)境的字典。 鍵和值的類型在Unix 上為 bytes 而在 Windows 上為 str。 例如,environ[b'HOME'] (Windows 上的 environ['HOME']) 是你的家目錄的路徑名,等價于 C 中的 getenv("HOME")。

修改此字典不會影響由 execv(), popen()system() 所傳入的字符串環(huán)境;如果你需要修改環(huán)境,請將 environ 傳給 execve() 或者為 system()popen() 的命令字符串添加變量賦值和 export 語句。

在 3.2 版更改: 在 Unix 上,鍵和值為 bytes 類型。

備注

os 模塊提供了對 environ 的替代實現(xiàn),它會在被修改時更新環(huán)境。 還要注意更新 os.environ 將導致此字典失效。 推薦使用這個 os 模塊版本而不是直接訪問 posix 模塊。