posix
— Наиболее распространенные системные вызовы POSIX¶
Этот модуль предоставляет доступ к функциональности операционной системы, которая стандартизирована стандартом C и стандартом POSIX (тонко замаскированный интерфейс Unix).
Availability: Unix.
Не импортируйте этот модуль напрямую. Вместо этого импортируйте модуль os
, который предоставляет портативную версию этого интерфейса. На Unix модуль os
предоставляет супернабор интерфейса posix
. В операционных системах, отличных от Unix, модуль posix
недоступен, но его подмножество всегда доступно через интерфейс os
. Если импортировать os
, то его использование вместо posix
не приведет к снижению производительности. Кроме того, os
обеспечивает некоторую дополнительную функциональность, например, автоматический вызов putenv()
при изменении записи в os.environ
.
Об ошибках сообщается в виде исключений; обычные исключения предоставляются для ошибок типа, а ошибки, сообщаемые системными вызовами, вызывают OSError
.
Поддержка больших файлов¶
Некоторые операционные системы (в том числе AIX и Solaris) обеспечивают поддержку файлов размером более 2 Гб из модели программирования на языке C, где int и long являются 32-битными значениями. Обычно это достигается путем определения соответствующих типов размера и смещения как 64-битных значений. Такие файлы иногда называют large files.
Поддержка больших файлов включается в 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 и str в Windows. Например,
environ[b'HOME']
(environ['HOME']
в Windows) - это имя пути к вашему домашнему каталогу, эквивалентноеgetenv("HOME")
в C.Изменение этого словаря не влияет на строковое окружение, передаваемое
execv()
,popen()
илиsystem()
; если вам нужно изменить окружение, передайтеenviron
вexecve()
или добавьте назначения переменных и операторы экспорта в командную строку дляsystem()
илиpopen()
.Изменено в версии 3.2: В Unix ключи и значения - это байты.
Примечание
Модуль
os
предоставляет альтернативную реализациюenviron
, которая обновляет окружение при модификации. Обратите внимание, что обновлениеos.environ
сделает этот словарь устаревшим. Рекомендуется использовать версию модуляos
, а не прямой доступ к модулюposix
.