Документация Python неофициальный перевод
Содержание страницы

33.1. posix – Самые распространённые системные вызовы POSIXposix – The most common POSIX system calls

Платформы: Unix

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

Не импортируйте этот модуль напрямую. Вместо этого импортируйте модуль os, который предоставляет переносимую версию этого интерфейса. На Unix модуль os предоставляет надмножество интерфейса posix. В операционных системах, отличных от Unix, модуль posix недоступен, но его подмножество всегда доступно через интерфейс os. После импорта os нет никаких потерь производительности при его использовании вместо posix. Кроме того, os предоставляет некоторые дополнительные возможности, такие как автоматический вызов putenv() при изменении записи в os.environ.

Ошибки сообщаются как исключения; для ошибок типа выдаются обычные исключения, а ошибки, возвращаемые системными вызовами, порождают OSError.

33.1.1. Поддержка больших файловLarge File Support

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

Поддержка больших файлов включается в Python, когда размер off_t больше, чем long, и тип long long доступен и по крайней мере не меньше 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

33.1.2. Примечательное содержимое модуляNotable Module Contents

Помимо множества функций, описанных в документации модуля os, posix определяет следующий элемент данных:

posix.environ

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

Изменение этого словаря не влияет на строковое окружение, передаваемое через execv(), popen() или system(); если необходимо изменить окружение, передайте environ в execve() или добавьте присваивания переменных и операторы export в командную строку для system() или popen().

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

Примечание

Модуль os предоставляет альтернативную реализацию environ, которая обновляет окружение при изменении. Обратите также внимание, что обновление os.environ сделает этот словарь устаревшим. Рекомендуется использовать версию этого словаря из модуля os вместо прямого обращения к модулю posix.