On this page
posix-最常见的 POSIX 系统调用
该模块提供对 os Function的访问,该Function由 C 标准和 POSIX 标准(一种伪装的 Unix 接口)标准化。
请勿直接导入此模块. 相反,请导入模块os,该模块提供此接口的便携式版本。在 Unix 上,os模块提供posix接口的超集。在非 Unixos 上,posix模块不可用,但始终可以passos接口使用子集。 os导入后,使用它而不是posix不会对性能造成任何影响。此外,os提供了一些其他Function,例如,当os.environ
中的条目更改时自动调用putenv()。
错误被报告为异常;对于类型错误,通常会给出异常,而系统调用报告的错误会引发OSError。
大文件支持
多个 os(包括 AIX,HP-UX,Irix 和 Solaris)为int
和long
是 32 位值的 C 编程模型提供了对大于 2 GiB 的文件的支持。通常pass将相关大小和偏移量类型定义为 64 位值来实现。此类文件有时称为大文件。
当off_t
的大小大于long
且long long
的大小至少与off_t
一样大时,将在 Python 中启用大文件支持。可能需要使用某些编译器标志配置和编译 Python 才能启用此模式。例如,默认情况下,最新版本的 Irix 启用了此Function,但是对于 Solaris 2.6 和 2.7,您需要执行以下操作:
CFLAGS="`getconf LFS_CFLAGS`" OPT="-g -O2 $CFLAGS" \
./configure
在具有大文件Function的 Linux 系统上,这可能会起作用:
CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \
./configure
重要的模块内容
除了os模块文档中描述的许多Function之外,posix还定义了以下数据项:
posix.
environ
- 代表解释器启动时的字符串环境的字典。键和值在 Unix 上是字节,在 Windows 上是 str。例如,
environ[b'HOME']
(Windows 上为environ['HOME']
)是主目录的路径名,等效于 C 中的getenv("HOME")
。
- 代表解释器启动时的字符串环境的字典。键和值在 Unix 上是字节,在 Windows 上是 str。例如,
修改此字典不会影响execv(),popen()或system()传递的字符串环境;如果需要更改环境,请将environ
传递给execve()或添加变量分配并将语句导出到system()或popen()的命令字符串。
在版本 3.2 中更改:在 Unix 上,键和值是字节。
Note
os模块提供environ
的替代实现,该实现在修改时会更新环境。另请注意,更新os.environ将使此字典过时。建议直接使用posix模块而不使用os模块版本。