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¶
Словарь, представляющий среду string на момент запуска интерпретатора. Ключи и значения - это байты в Unix и 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
.