# `posix` — The most common POSIX system calls

Цей модуль забезпечує доступ до функціональних можливостей операційної системи, стандартизованих стандартом C і стандартом POSIX (тонко замаскований інтерфейс Unix).

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

Помилки повідомляються як винятки; звичайні винятки надаються для помилок типу, тоді як помилки, про які повідомляють системні виклики, викликають `OSError`.

## Підтримка великих файлів

Several operating systems (including AIX and Solaris) provide support for files that are larger than 2 GiB from a C programming model where `int` and `long` are 32-bit values. This is typically accomplished by defining the relevant size and offset types as 64-bit values. Such files are sometimes referred to as large files.

Large file support is enabled in Python when the size of an `off_t` is larger than a `long` and the `long long` is at least as large as an `off_t`. It may be necessary to configure and compile Python with certain compiler flags to enable this mode. For example, with Solaris 2.6 and 2.7 you need to do something like:

    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()`; якщо вам потрібно змінити середовище, передайте `environ` до `execve()` або додайте призначення змінних і оператори експорту до командного рядка для `system()` або `popen()`.

  Змінено в версії 3.2: В Unix ключі та значення є байтами.

  Примітка

  Модуль `os` забезпечує альтернативну реалізацію `environ`, яка оновлює середовище після внесення змін. Зауважте також, що оновлення `os.environ` зробить цей словник застарілим. Рекомендується використовувати версію модуля `os` замість прямого доступу до модуля `posix`.