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()или добавьте присваивания переменных и операторы экспорта в строку команды для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.9/library/posix.html