posix — Наиболее распространённые системные вызовы POSIX
Этот модуль предоставляет доступ к функциям операционной системы, стандартизированным стандартом C и стандартом POSIX (слегка завуалированным интерфейсом Unix).
Доступность: Unix.
Не импортируйте этот модуль напрямую. Вместо этого импортируйте модуль os, предоставляющий переносимую версию этого интерфейса. В Unix модуль os предоставляет надмножество интерфейса posix. В операционных системах, отличных от Unix, модуль posix недоступен, но его подмножество всегда доступно через интерфейс os. После импорта os использование этого модуля вместо posix не приводит к снижению производительности. Кроме того, os предоставляет некоторые дополнительные возможности, например автоматически вызывает putenv() при изменении записи в os.environ.
Ошибки сообщаются в виде исключений: при ошибках типов возбуждаются стандартные исключения, а ошибки, о которых сообщают системные вызовы, вызывают OSError.
Поддержка больших файлов
Некоторые операционные системы (включая AIX и Solaris) поддерживают файлы размером более 2 GiB в модели программирования на 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
Примечательные элементы модуля
Помимо множества функций, описанных в документации модуля os, модуль posix определяет следующий элемент данных:
-
posix.environ -
Словарь, представляющий строковое окружение на момент запуска интерпретатора. В Unix ключи и значения имеют тип bytes, а в Windows — тип str. Например,
environ[b'HOME'](environ['HOME']в Windows) — это путь к домашнему каталогу, эквивалентныйgetenv("HOME")в C.Изменение этого словаря не влияет на строковое окружение, передаваемое функциями
execv(),popen()илиsystem(); если нужно изменить окружение, передайтеenvironвexecve()или добавьте присваивания переменных и инструкции export в строку команды дляsystem()илиpopen().Изменено в версии 3.2: В Unix ключи и значения имеют тип bytes.
Примечание
Модуль
osпредоставляет альтернативную реализациюenviron, которая обновляет окружение при изменении. Обратите также внимание, что обновлениеos.environсделает этот словарь устаревшим. Рекомендуется использовать вариант из модуляos, а не обращаться напрямую к модулюposix.
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/posix.html