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
模組。