Документация Python неофициальный перевод

posix.md

50 строк · 6.4 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.2/library/posix.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 33.1. [`posix`](https://python-all.ru/3.2/library/posix.html#module-posix) – Самые распространённые системные вызовы POSIX89*Платформы:* Unix1011Этот модуль предоставляет доступ к функциям операционной системы, стандартизированным стандартами C и POSIX (по сути, это слегка замаскированный интерфейс Unix).1213**Не импортируйте этот модуль напрямую.** Вместо этого импортируйте модуль [`os`](https://python-all.ru/3.2/library/os.html#module-os), который предоставляет *переносимую* версию этого интерфейса. На Unix модуль [`os`](https://python-all.ru/3.2/library/os.html#module-os) предоставляет надмножество интерфейса [`posix`](https://python-all.ru/3.2/library/posix.html#module-posix). В операционных системах, отличных от Unix, модуль [`posix`](https://python-all.ru/3.2/library/posix.html#module-posix) недоступен, но его подмножество всегда доступно через интерфейс [`os`](https://python-all.ru/3.2/library/os.html#module-os). После импорта [`os`](https://python-all.ru/3.2/library/os.html#module-os) нет *никаких* потерь производительности при его использовании вместо [`posix`](https://python-all.ru/3.2/library/posix.html#module-posix). Кроме того, [`os`](https://python-all.ru/3.2/library/os.html#module-os) предоставляет некоторые дополнительные возможности, такие как автоматический вызов `putenv()` при изменении записи в `os.environ`.1415Ошибки сообщаются как исключения; для ошибок типа выдаются обычные исключения, а ошибки, возвращаемые системными вызовами, порождают [`OSError`](https://python-all.ru/3.2/library/exceptions.html#OSError).1617## 33.1.1. Поддержка больших файлов1819Некоторые операционные системы (включая AIX, HP-UX, Irix и Solaris) предоставляют поддержку файлов размером более 2 ГБ из модели программирования на C, где `int` и `long` являются 32-битными значениями. Обычно это достигается определением соответствующих типов размера и смещения как 64-битных значений. Такие файлы иногда называют *большими файлами*.2021Поддержка больших файлов включается в Python, когда размер `off_t` больше, чем `long`, и тип `long long` доступен и по крайней мере не меньше `off_t`. Возможно, потребуется настроить и скомпилировать Python с определёнными флагами компилятора для включения этого режима. Например, он включён по умолчанию в последних версиях Irix, но на Solaris 2.6 и 2.7 нужно сделать что-то вроде:2223```python24CFLAGS="`getconf LFS_CFLAGS`" OPT="-g -O2 $CFLAGS" \25        ./configure26```2728На Linux-системах с поддержкой больших файлов это может сработать:2930```python31CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \32        ./configure33```3435## 33.1.2. Примечательное содержимое модуля3637Помимо множества функций, описанных в документации модуля [`os`](https://python-all.ru/3.2/library/os.html#module-os), [`posix`](https://python-all.ru/3.2/library/posix.html#module-posix) определяет следующий элемент данных:3839#### `posix.environ`4041Словарь, представляющий строковое окружение на момент запуска интерпретатора. Ключи и значения – bytes в Unix и str в Windows. Например, `environ[b'HOME']` (`environ['HOME']` в Windows) – это путь к вашему домашнему каталогу, эквивалентный `getenv("HOME")` в C.4243Изменение этого словаря не влияет на строковое окружение, передаваемое через `execv()`, `popen()` или `system()`; если необходимо изменить окружение, передайте `environ` в `execve()` или добавьте присваивания переменных и операторы export в командную строку для `system()` или `popen()`.4445Изменено в версии 3.2: На Unix ключи и значения являются байтами.4647> **Примечание**48>49> Модуль [`os`](https://python-all.ru/3.2/library/os.html#module-os) предоставляет альтернативную реализацию `environ`, которая обновляет окружение при изменении. Обратите также внимание, что обновление [`os.environ`](https://python-all.ru/3.2/library/os.html#os.environ) сделает этот словарь устаревшим. Рекомендуется использовать версию этого словаря из модуля [`os`](https://python-all.ru/3.2/library/os.html#module-os) вместо прямого обращения к модулю [`posix`](https://python-all.ru/3.2/library/posix.html#module-posix).50