# 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`模块。