posix
— Наиболее распространенные системные вызовы POSIX
Модуль предоставляет доступ к функциям операционной системы, стандартизированным стандартом C и стандартом POSIX (слегка замаскированный интерфейс Unix).
Не импортируйте данный модуль напрямую. Вместо него импортируйте модуль
os
, предоставляющий переносимую версию данного интерфейса. В Unix
модуль os
предоставляет расширенный множество интерфейса posix
. В
операционных системах, отличных от Unix, модуль posix
недоступен, но
подмножество всегда доступно через интерфейс os
. Как только os
будет импортирован, его использование вместо posix
не повлияет на производительность. Кроме
того, os
предоставляет некоторые дополнительные функции, такие как
автоматический вызов putenv()
при изменении записи в os.environ
.
Об ошибках сообщается как об исключениях; обычные исключения даются для ошибок
типов, а ошибки, о которых сообщают системные вызовы, вызывают OSError
.
Поддержка больших файлов
Некоторые операционные системы (включая 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
Примечательное содержимое модуля
В дополнение ко многим функциям, рассмотренным в документации модуля 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
.