在线文档教程

posix

posix - 最常见的POSIX系统调用

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

不要直接导入此模块。 相反,导入模块操作系统,它提供了该接口的可移植版本。 在Unix上,os模块提供了posix界面的超集。 在非Unix操作系统上,posix模块不可用,但是一个子集始终可通过os界面使用。 一旦os被导入,使用它代替posix就没有性能损失。 另外,os提供了一些额外的功能,例如当os.environ中的条目改变时自动调用putenv()。

错误报告为例外; 通常的例外是针对类型错误给出的,而系统调用报告的错误会引发OSError

1.大型文件支持

一些操作系统(包括AIX,HP-UX,Irix和Solaris)为C编程模型提供了对大于2 GB的文件的支持,其中int和long是32位值。 这通常通过将相关大小和偏移量类型定义为64位值来实现。 这些文件有时被称为大文件。

当off_t的大小大于long并且long long类型可用并且至少与off_t一样大时,在Python中启用大文件支持。 然后使用Python long来表示文件大小,偏移量和其他可能超出Python int范围的值。 可能需要使用某些编译器标志来配置和编译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

2.广泛的模块内容

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

posix.environ

表示解释器启动时的字符串环境的字典。 例如,environ ['HOME']是您的主目录的路径名,相当于C中的getenv(“HOME”)。

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

注意

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