posix– 最常见的POSIX系统调用


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

不要直接导入模块.而是导入模块os,它提供了这个界面的portable版本。在Unix上,os模块提供了posix接口的超集。在非Unix操作系统posix模块不可用,但通过os接口始终可以使用子集。一旦导入os,使用它而不是no会有posix性能损失。此外,os提供了一些额外的功能,比如当putenv()中的条目改变时自动调用os.environ.

错误报告为例外;对于类型错误给出了常见的异常,而系统调用报告的错误提高了OSError.

 

大文件支持

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

off_t的大小大于long并且long long类型可用时,在Python中启用大文件支持并且至少与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

 

值得注意的模块内容

除了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 module.