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


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

不要直接导入此模块。 相反,导入模块 os ,它提供了 便携式的 此接口的版本。在UNIX上 os 模块提供了 posix 接口。在非UNIX操作系统上, posix 模块不可用,但通过 os 接口。一次 os 是输入的,有 no 使用它而不是 posix .此外, os 提供一些附加功能,例如自动调用 putenv() 当一个入口 os.environ 改变了。

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

大文件支持

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

在Python中启用大文件支持时, 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'] (environ['HOME'] 在Windows上)是主目录的路径名,相当于 getenv("HOME") 在C.

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

在 3.2 版更改: 在UNIX上,键和值是字节。

注解

这个 os 模块提供了 environ 在修改时更新环境。还要注意更新 os.environ 将使此词典过时。使用 os 建议使用模块版本,而不是直接访问 posix 模块。