posix — Наиболее распространенные системные вызовы POSIX¶
Этот модуль предоставляет доступ к функциональным возможностям операционной системы, которые стандартизированы стандартом C и стандартом POSIX (тонко замаскированный интерфейс Unix).
Availability: 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
Примечательное содержимое модуля¶
В дополнение ко многим функциям, описанным в документации по модулю os, posix определяет следующий элемент данных:
- posix.environ¶
Словарь, представляющий среду string на момент запуска интерпретатора. Ключи и значения - это байты в 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.