posix
— Наиболее распространенные системные вызовы POSIX¶
Этот модуль предоставляет доступ к функциональности операционной системы, стандартизованной стандартом C и стандартом POSIX (тонко замаскированный интерфейс 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
Содержание модуля¶
Поддержка больших файлов включается в Python, когда размер :c:mod:`os` больше, чем :c:mod:`posix`, а размер :c по крайней мере такой же, как :c . Для включения этого режима может потребоваться настройка и компиляция Python с определенными флагами компилятора. Например, в Solaris 2.6 и 2.7 вам нужно сделать что-то вроде:
-
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
.