> **Источник:** https://python-all.ru/3.14/library/posix.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# `posix` – наиболее распространённые системные вызовы POSIX

---

Этот модуль предоставляет доступ к функциям операционной системы, стандартизированным стандартами C и POSIX (по сути, это слегка замаскированный интерфейс Unix).

[Доступность](https://python-all.ru/3.14/library/intro.html#availability): Unix.

**Этот модуль не следует импортировать напрямую.** Вместо этого импортируйте модуль [`os`](https://python-all.ru/3.14/library/os.html#module-os), который предоставляет *переносимую* версию этого интерфейса. В Unix модуль `os` предоставляет надмножество интерфейса `posix`. В операционных системах, отличных от Unix, модуль `posix` недоступен, но подмножество всегда доступно через интерфейс `os`. После импорта `os` *не* возникает потери производительности при его использовании вместо `posix`. Кроме того, `os` предоставляет некоторые дополнительные возможности, такие как автоматический вызов [`putenv()`](https://python-all.ru/3.14/library/os.html#os.putenv) при изменении записи в `os.environ`.

Ошибки возвращаются в виде исключений; для ошибок типа используются обычные исключения, а ошибки, возвращаемые системными вызовами, порождают [`OSError`](https://python-all.ru/3.14/library/exceptions.html#OSError).

## Поддержка больших файлов

Некоторые операционные системы (включая AIX и Solaris) обеспечивают поддержку файлов размером более 2 ГиБ в модели программирования на C, где int и long являются 32-битными значениями. Обычно это достигается определением соответствующих типов размера и смещения как 64-битных значений. Такие файлы иногда называют *большими файлами*.

Поддержка больших файлов включается в Python, когда размер `off_t` больше, чем long, а long long по крайней мере не меньше, чем `off_t`. Возможно, потребуется настроить и скомпилировать Python с определёнными флагами компилятора для включения этого режима. Например, в Solaris 2.6 и 2.7 необходимо сделать следующее:

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

На Linux-системах с поддержкой больших файлов это может сработать:

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

## Примечательное содержимое модуля

В дополнение ко многим функциям, описанным в документации модуля [`os`](https://python-all.ru/3.14/library/os.html#module-os), `posix` определяет следующий элемент данных:

#### `posix.environ`

Словарь, представляющий строковое окружение на момент запуска интерпретатора. Ключи и значения являются байтами в Unix и str в Windows. Например, `environ[b'HOME']` (`environ['HOME']` в Windows) – это путь к домашнему каталогу, эквивалентный `getenv("HOME")` в C.

Изменение этого словаря не влияет на строковое окружение, передаваемое через [`execv()`](https://python-all.ru/3.14/library/os.html#os.execv), [`popen()`](https://python-all.ru/3.14/library/os.html#os.popen) или [`system()`](https://python-all.ru/3.14/library/os.html#os.system); если необходимо изменить окружение, передайте `environ` в [`execve()`](https://python-all.ru/3.14/library/os.html#os.execve) или добавьте присваивания переменных и операторы export в командную строку для `system()` или `popen()`.

Изменено в версии 3.2: В Unix ключи и значения являются байтами.

> **Примечание**
>
> Модуль [`os`](https://python-all.ru/3.14/library/os.html#module-os) предоставляет альтернативную реализацию `environ`, которая обновляет окружение при изменении. Также обратите внимание, что обновление [`os.environ`](https://python-all.ru/3.14/library/os.html#os.environ) сделает этот словарь устаревшим. Рекомендуется использовать версию из модуля `os` вместо прямого доступа к модулю `posix`.
