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