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 и строками в Windows. Например,
environ[b'HOME'](environ['HOME']в Windows) — это путь к вашему домашнему каталогу, эквивалентныйgetenv("HOME")в C.Изменение этого словаря не влияет на строковую среду, переданную
execv(),popen()илиsystem(); если вам нужно изменить среду, передайтеenvironвexecve()или добавьте присваивания переменных и операторы export в строку команды дляsystem()илиpopen().Изменено в версии 3.2: В Unix, ключи и значения — байтовые строки.
Примечание
Модуль
osпредоставляет альтернативную реализациюenviron, которая обновляет среду при изменении. Также обратите внимание, что обновлениеos.environсделает этот словарь устаревшим. Рекомендуется использовать версию модуляosвместо прямого доступа к модулюposix.
© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/library/posix.html