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¶
对于int
和long
的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
模块。