This document is for an old version of Python that is no longer supported. You should upgrade and read the Python 当前稳定版本的文档.

# 36.1. `posix` — 最常见的 POSIX 系统调用

此模块提供了对基于 C 标准和 POSIX 标准（一种稍加修改的 Unix 接口）进行标准化的系统功能的访问。

请勿直接导入此模块。 而应导入 `os` 模块，它提供了此接口的 可移植 版本。 在 Unix 上，`os` 模块提供了 `posix` 接口的一个超集。 在非 Unix 操作系统上 `posix` 模块将不可用，但会通过 `os` 接口提供它的一个可用子集。 一旦导入了 `os`，用它替代 `posix` 时就 没有 性能惩罚。 此外，`os` 还提供了一些附加功能，例如在 `os.environ` 中的某个条目被修改时会自动调用 `putenv()`。

错误将作为异常被报告；对于类型错误会给出普通异常，而系统调用所报告的异常则会引发 `OSError`。

## 36.1.1. 大文件支持

Several operating systems (including AIX, HP-UX, Irix and Solaris) provide support for files that are larger than 2 GB from a C programming model where `int` and `long` are 32-bit values. This is typically accomplished by defining the relevant size and offset types as 64-bit values. Such files are sometimes referred to as large files.

Large file support is enabled in Python when the size of an `off_t` is larger than a `long` and the `long long` type is available and is at least as large as an `off_t`. Python longs are then used to represent file sizes, offsets and other values that can exceed the range of a Python int. It may be necessary to configure and compile Python with certain compiler flags to enable this mode. For example, it is enabled by default with recent versions of Irix, but with Solaris 2.6 and 2.7 you need to do something like:

    CFLAGS="`getconf LFS_CFLAGS`" OPT="-g -O2 $CFLAGS" \
            ./configure

在支持大文件的 Linux 系统中，可以这样做:

    CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \
            ./configure

## 36.1.2. 重要的模块内容

除了 `os` 模块文档已说明的许多函数，`posix` 还定义了下列数据项:

`posix.``environ`

  A dictionary representing the string environment at the time the interpreter was started. For example, `environ['HOME']` is the pathname of your home directory, equivalent to `getenv("HOME")` in C.

  修改此字典不会影响由 `execv()`, `popen()` 或 `system()` 所传入的字符串环境；如果你需要修改环境，请将 `environ` 传给 `execve()` 或者为 `system()` 或 `popen()` 的命令字符串添加变量赋值和 export 语句。

  注解

  The `os` module provides an alternate implementation of `environ` which updates the environment on modification. Note also that updating `os.environ` will render this dictionary obsolete. Use of the `os` module version of this is recommended over direct access to the `posix` module.