posix — Наиболее распространённые системные вызовы POSIX
Этот модуль предоставляет доступ к функциональности операционной системы, стандартизованной стандартом C и стандартом POSIX (слегка замаскированным интерфейсом Unix).
Доступность: Unix.
Не импортируйте этот модуль напрямую. Вместо этого импортируйте модуль os, предоставляющий переносимую версию этого интерфейса. В Unix модуль os предоставляет надмножество интерфейса posix. В операционных системах, отличных от Unix, модуль posix недоступен, но его подмножество всегда доступно через интерфейс os. После импорта os использование этого модуля вместо posix не приводит к снижению производительности. Кроме того, os предоставляет дополнительную функциональность, например автоматически вызывает putenv() при изменении записи в os.environ.
Ошибки сообщаются в виде исключений: при ошибках типов возникают обычные исключения, а ошибки, о которых сообщают системные вызовы, вызывают исключение OSError.
Поддержка больших файлов
Некоторые операционные системы (включая 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
Примечательные элементы модуля
Помимо множества функций, описанных в документации модуля 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–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/library/posix.html