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

Several operating systems (including AIX, HP-UX 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

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.