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 GiB из C-моделью программирования
int и long 32-разрядные значения. Обычно это
достигается путем определения соответствующих типов размера и смещения как
64-разрядных значения. Такие файлы иногда называют large files.
Поддержка больших файлов включена в 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 и str в Windows. Например,
environ[b'HOME'](environ['HOME']в Windows) - это путь к домашнему каталогу, эквивалентныйgetenv("HOME")в C.Изменение этого словаря не влияет на среду строка, переданную
execv(),popen()илиsystem(); если необходимо изменить среду, передайтеenvironexecve()или добавьте назначения переменных и экспортируйте инструкции в команду строка дляsystem()илиpopen().Изменено в версии 3.2: В Unix ключи и значения являются байтами.
Примечание
Модуль
osобеспечивает альтернативную реализациюenviron, которая обновляет среду при изменении. Обратите внимание также, что обновлениеos.environотдаст этот устаревший словарь. Рекомендуется использовать версию модуляosдля прямого доступа к модулюposix.
