Содержание страницы
posix – наиболее распространённые системные вызовы POSIX¶posix – The most common POSIX system calls
Этот модуль предоставляет доступ к функциям операционной системы, стандартизированным стандартами C и POSIX (по сути, это слегка замаскированный интерфейс Unix).
Этот модуль не следует импортировать напрямую. Вместо этого импортируйте модуль os, который предоставляет переносимую версию этого интерфейса. В Unix модуль os предоставляет надмножество интерфейса posix. В операционных системах, отличных от Unix, модуль posix недоступен, но подмножество всегда доступно через интерфейс os. После импорта os не возникает потери производительности при его использовании вместо posix. Кроме того, os предоставляет некоторые дополнительные возможности, такие как автоматический вызов putenv() при изменении записи в os.environ.
Ошибки возвращаются в виде исключений; для ошибок типа используются обычные исключения, а ошибки, возвращаемые системными вызовами, порождают OSError.
Поддержка больших файлов¶Large File Support
Некоторые операционные системы (включая AIX и Solaris) поддерживают
файлы размером более 2 ГиБ в модели программирования на C, где
int и long являются 32-битными значениями. Обычно это достигается
определением соответствующих типов размера и смещения как 64-битных значений. Такие файлы иногда
называют большими файлами.
Поддержка больших файлов включается в Python, когда размер off_t превышает
long, а long long не меньше off_t.
Возможно, потребуется настроить и скомпилировать Python с определёнными флагами компилятора
для включения этого режима. Например, в 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
Примечательное содержимое модуля¶Notable Module Contents
В дополнение ко многим функциям, описанным в документации модуля os, posix определяет следующий элемент данных:
-
posix.environ¶ Словарь, представляющий строковое окружение на момент запуска интерпретатора. Ключи и значения являются байтами в 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.