Spec-Zone.ru › Python 3.10

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-разрядных значений. Такие файлы иногда называют большими файлами.

Поддержка больших файлов включена в 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() или добавьте присваивания переменных и инструкции export в строку команды для 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.10/library/posix.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API