posix — Наиболее распространенные системные вызовы POSIX


Этот модуль предоставляет доступ к функциональности операционной системы, стандартизованной стандартом C и стандартом POSIX (тонко замаскированный интерфейс Unix).

Не импортируйте этот модуль напрямую. Вместо этого импортируйте модуль os, который предоставляет портативную версию этого интерфейса. В операционной системе Unix модуль os предоставляет супермножество интерфейса posix. В операционных системах, отличных от Unix, модуль posix недоступен, но его подмножество всегда доступно через интерфейс os. После импорта os не существует никакого ущерба производительности при использовании его вместо posix. Кроме того, os предоставляет некоторые дополнительные функциональные возможности, такие как автоматический вызов putenv() при изменении записи в os.environ.

Об ошибках сообщается в виде исключений; обычные исключения выдаются для ошибок типа, а ошибки, сообщаемые системными вызовами, вызывают ошибку OSError.

Поддержка больших файлов

Некоторые операционные системы (включая AIX и Solaris) обеспечивают поддержку файлов размером более 2 Гигабайт из модели программирования C, где int и long являются 32-битными значениями. Обычно это достигается путем определения соответствующих типов размера и смещения как 64-битных значений. Такие файлы иногда называют large files.

Поддержка больших файлов включается в 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

Содержание модуля

Поддержка больших файлов включается в Python, когда размер :c:mod:`os` больше, чем :c:mod:`posix`, а размер :c по крайней мере такой же, как :c . Для включения этого режима может потребоваться настройка и компиляция Python с определенными флагами компилятора. Например, в Solaris 2.6 и 2.7 вам нужно сделать что-то вроде:

posix.environ

Словарь, представляющий строковое окружение на момент запуска интерпретатора. Ключи и значения - байты в Unix и str в 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.

Вернуться на верх