# `posix` — Las llamadas más comunes al sistema POSIX

Este módulo proporciona acceso a la funcionalidad del sistema operativo que está estandarizada por el estándar C y el estándar POSIX (una interfaz Unix finamente disfrazada).

No importe este módulo directamente. En su lugar, importe el módulo `os`, que proporciona una versión portable de esta interfaz. En Unix, el módulo `os` proporciona un superconjunto de la interfaz `posix`. En sistemas operativos que no son Unix, el módulo `posix` no está disponible, pero un subconjunto siempre está disponible a través de la interfaz `os`. Una vez que se importa `os`, no hay penalización de rendimiento en su uso en lugar de `posix`. Además, `os` proporciona algunas funciones adicionales, como llamar automáticamente a `putenv()` cuando se cambia una entrada en `os.environ`.

Los errores se notifican como excepciones; las excepciones habituales se proporcionan para los errores de tipo, mientras que los errores notificados por las llamadas del sistema lanzan `OSError`.

## Soporte de archivos grandes

Varios sistemas operativos (incluidos AIX, HP-UX, Irix y Solaris) proporcionan compatibilidad con archivos de más de 2 GiB de un modelo de programación C donde `int` y `long` son valores de 32 bits. Esto se logra normalmente definiendo el tamaño relevante y los tipos de desplazamiento como valores de 64 bits. Tales archivos se conocen a veces como large files.

La compatibilidad con archivos grandes está habilitada en Python cuando el tamaño de un `off_t` es mayor que un `long` y `long long` es al menos tan grande como `off_t`. Puede ser necesario configurar y compilar Python con ciertos indicadores del compilador para habilitar este modo. Por ejemplo, está habilitado de forma predeterminada con las versiones recientes de Irix, pero con Solaris 2.6 y 2.7 debe hacer algo como:

    CFLAGS="`getconf LFS_CFLAGS`" OPT="-g -O2 $CFLAGS" \
            ./configure

En sistemas Linux con capacidad para archivos grandes, esto podría funcionar:

    CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \
            ./configure

## Contenido notable del módulo

Además de muchas funciones descritas en la documentación del módulo `os`, `posix` define el siguiente elemento de datos:

`posix.``environ`

  Diccionario que representa el entorno de cadena en el momento en que se inició el intérprete. Las claves y los valores son bytes en Unix y str en Windows. Por ejemplo, `environ[b'HOME']` (`environ['HOME']` en Windows) es el nombre de ruta de acceso de su directorio principal, equivalente a `getenv("HOME")` en C.

  La modificación de este diccionario no afecta al entorno de cadena que transmite `execv()`, `popen()` o `system()`; si necesita cambiar el entorno, pase `environ` a `execve()` o agregue asignaciones variables y declaraciones de exportación a la cadena de comandos para `system()` o `popen()`.

  Distinto en la versión 3.2: En Unix, las claves y los valores son bytes.

  Nota

  El módulo `os` proporciona una implementación alternativa de `environ` que actualiza el entorno en la modificación. Tenga en cuenta también que la actualización `os.environ` hará que este diccionario sea obsoleto. El uso de la versión del módulo `os` de esto se recomienda sobre el acceso directo al módulo `posix`.