35.1. posix - 最常见的POSIX系统调用

此模块提供对由C标准和POSIX标准(一个伪装的Unix接口)标准化的操作系统功能的访问。

不要直接导入此模块。请改为导入模块os,该模块提供此界面的便携式版本。在Unix上,os模块提供posix接口的超集。在非Unix操作系统上,posix模块不可用,但通过os接口始终可以使用子集。导入os后,使用它而不是posix时,存在没有性能损失。此外,os提供了一些额外的功能,例如当os.environ中的条目更改时自动调用putenv()

错误报告为异常;对类型错误给出通常的异常,而由系统报告的错误调用引发OSError

35.1.1. Large File Support

对于intlong的C编程模型,多个操作系统(包括AIX,HP-UX,Irix和Solaris)支持大于2 GiB的文件位值。这通常通过将相关大小和偏移类型定义为64位值来实现。此类文件有时称为大文件

off_t的大小大于long 长时,在Python中启用大文件支持。 / t6>类型可用,并且至少与off_t一样大。可能需要使用某些编译器标志来配置和编译Python以启用此模式。例如,默认情况下,它使用最新版本的Irix启用,但是对于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

35.1.2.注释模块内容

除了os模块文档中描述的许多函数,posix定义了以下数据项:

posix.environ

表示解释器启动时的字符串环境的字典。键和值是Unix和str上的字节。例如,在Windows上的environ[b'HOME']environ['HOME'])是您的主目录的路径名,相当于getenv("HOME")

修改此字典不会影响execv()popen()system()传递的字符串环境;如果您需要更改环境,请将environ传递给execve()或将变量分配和导出语句添加到system()popen()

在版本3.2中更改:在Unix上,键和值是字节。

注意

os模块提供了environ的替代实现,它在修改时更新环境。还要注意,更新os.environ会使此字典过时。建议使用os模块版本,直接访问posix模块。