posix — Наиболее распространённые системные вызовы POSIX
Этот модуль предоставляет доступ к функциональности операционной системы, стандартизированной в C Standard и стандарте 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–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.7/library/posix.html