posix- 最常见的POSIX系统调用 – Unix特定服务(Python教程)(参考资料)
posix
– 最常见的POSIX系统调用
该模块提供对C标准和POSIX标准(一种伪装的Unix接口)标准化的操作系统功能的访问.
不要直接导入该模块.而是导入模块os
,它提供了这个界面的portable版本。在Unix上,os
模块提供了posix
接口的超集。在非Unix操作系统上posix
模块不可用,但通过os
接口始终可以使用子集。一旦导入os
,使用它而不是no会有posix
性能损失。此外,os
提供了一些额外的功能,比如当putenv()
中的条目改变时自动调用os.environ
.
错误报告为例外;对于类型错误给出了常见的异常,而系统调用报告的错误提高了OSError
.
大文件支持
多个操作系统(包括AIX,HP-UX,Irix和Solaris)为C编程模型提供了大于2 GiB的文件,其中int
和long
是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()
;如果你需要改变环境,请通过environ
至execve()
或者将变量赋值和导出语句添加到system()
要么popen()
.在版本3.2中更改:在Unix上,键和值是字节.
注意
os
模块提供environ
的替代实现,它在修改时更新环境。还要注意更新os.environ
将使这个字典过时。建议使用os
模块版本直接访问posix
module.