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.