posix
— 最常见的 POSIX 系统调用¶
此模块提供对操作系统功能的访问,这些功能由 C 标准和 POSIX 标准(一个伪装的 Unix 接口)标准化。
可用性: Unix。
不要直接导入此模块。 相反,请导入模块 os
,它提供了此接口的可移植版本。在 Unix 上,os
模块提供了 posix
接口的超集。在非 Unix 操作系统上,posix
模块不可用,但其子集始终可通过 os
接口获得。一旦导入 os
,使用它代替 posix
不会有性能损失。此外,os
提供了额外的功能,例如当 os.environ
中的条目被更改时,会自动调用 putenv()
。
错误以异常形式报告;对于类型错误会抛出通常的异常,而系统调用报告的错误会引发 OSError
。
大文件支持¶
一些操作系统(包括 AIX 和 Solaris)在 C 编程模型中支持大于 2 GiB 的文件,其中 int 和 long 是 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
模块。