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