posix — Die gebräuchlichsten POSIX-Systemaufrufe


Dieses Modul bietet Zugriff auf Betriebssystemfunktionen, die vom C-Standard und dem POSIX-Standard (eine dünn verhüllte Unix-Schnittstelle) standardisiert sind.

Importieren Sie dieses Modul nicht direkt. Importieren Sie stattdessen das Modul os, das eine portable Version dieser Schnittstelle bereitstellt. Unter Unix stellt das Modul os eine Obermenge der posix-Schnittstelle dar. Auf Nicht-Unix-Betriebssystemen ist das Modul posix nicht verfügbar, aber eine Teilmenge ist immer über die os-Schnittstelle verfügbar. Sobald os importiert wurde, gibt es keine Leistungseinbußen, wenn Sie es anstelle von posix verwenden. Zusätzlich bietet os einige zusätzliche Funktionalitäten, wie z. B. das automatische Aufrufen von putenv(), wenn ein Eintrag in os.environ geändert wird.

Fehler werden als Ausnahmen gemeldet; die üblichen Ausnahmen werden für Typfehler angegeben, während vom System aufgerufene Fehler OSError auslösen.

Unterstützung für große Dateien

Mehrere Betriebssysteme (einschließlich AIX und Solaris) unterstützen Dateien, die größer als 2 GiB sind, in einem C-Programmiermodell, bei dem int und long 32-Bit-Werte sind. Dies wird typischerweise durch die Definition der relevanten Größen- und Offset-Typen als 64-Bit-Werte erreicht. Solche Dateien werden manchmal als große Dateien bezeichnet.

Die Unterstützung für große Dateien ist in Python aktiviert, wenn die Größe eines off_t größer als ein long ist und long long mindestens so groß ist wie ein off_t. Möglicherweise müssen Sie Python mit bestimmten Compiler-Flags konfigurieren und kompilieren, um diesen Modus zu aktivieren. Zum Beispiel müssen Sie unter Solaris 2.6 und 2.7 so etwas tun

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

Auf Linux-Systemen, die große Dateien unterstützen, könnte dies funktionieren

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

Bemerkenswerte Modulinhalte

Zusätzlich zu vielen Funktionen, die in der Dokumentation des Moduls os beschrieben sind, definiert posix das folgende Datenelement

posix.environ

Ein Wörterbuch, das die Zeichenumgebung zum Zeitpunkt des Starts des Interpreters darstellt. Schlüssel und Werte sind Bytes unter Unix und str unter Windows. Zum Beispiel ist environ[b'HOME'] (environ['HOME'] unter Windows) der Pfad zu Ihrem Home-Verzeichnis, äquivalent zu getenv("HOME") in C.

Das Ändern dieses Wörterbuchs hat keine Auswirkungen auf die Zeichenumgebung, die von execv(), popen() oder system() übergeben wird; wenn Sie die Umgebung ändern müssen, übergeben Sie environ an execve() oder fügen Sie Variablendefinitionen und Exportanweisungen zur Befehlszeichenkette für system() oder popen() hinzu.

Geändert in Version 3.2: Unter Unix sind Schlüssel und Werte Bytes.

Hinweis

Das Modul os bietet eine alternative Implementierung von environ, die die Umgebung bei Änderungen aktualisiert. Beachten Sie auch, dass die Aktualisierung von os.environ diesen Wörterbuch obsolet macht. Die Verwendung der Version dieses Moduls von os wird gegenüber dem direkten Zugriff auf das Modul posix empfohlen.