posix
— De vanligaste POSIX-systemanropen¶
Den här modulen ger tillgång till operativsystemets funktioner som standardiseras av C-standarden och POSIX-standarden (ett tunnt förklätt Unix-gränssnitt).
Tillgänglighet: Unix.
Importera inte den här modulen direkt, utan istället modulen os
, som tillhandahåller en portabel version av det här gränssnittet. På Unix ger modulen os
en överuppsättning av gränssnittet posix
. På operativsystem som inte är Unix är modulen posix
inte tillgänglig, men en delmängd är alltid tillgänglig via gränssnittet os
. När os
väl är importerad finns det ingen prestandaförlust med att använda den istället för posix
. Dessutom ger os
några ytterligare funktioner, som att automatiskt anropa putenv()
när en post i os.environ
ändras.
Fel rapporteras som undantag; de vanliga undantagen ges för typfel, medan fel som rapporteras av systemanropen ger upphov till OSError
.
Stöd för stora filer¶
Flera operativsystem (bland annat AIX och Solaris) ger stöd för filer som är större än 2 GiB från en C-programmeringsmodell där int och long är 32-bitarsvärden. Detta åstadkoms vanligen genom att definiera de relevanta storleks- och offset-typerna som 64-bitarsvärden. Sådana filer kallas ibland large files.
Stöd för stora filer aktiveras i Python när storleken på en off_t
är större än en long och long long är minst lika stor som en off_t
. Det kan vara nödvändigt att konfigurera och kompilera Python med vissa kompilatorflaggor för att aktivera det här läget. Med Solaris 2.6 och 2.7 måste du till exempel göra något i stil med:
CFLAGS="`getconf LFS_CFLAGS`" OPT="-g -O2 $CFLAGS" \
./konfigurera
På Linux-system med stor filkapacitet kan detta fungera:
CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \
./konfigurera
Anmärkningsvärt modulinnehåll¶
Förutom de många funktioner som beskrivs i moduldokumentationen os
, definierar posix
följande dataelement:
- posix.environ¶
En ordbok som representerar strängmiljön vid den tidpunkt då tolken startades. Nycklar och värden är bytes på Unix och str på Windows. Till exempel är
environ[b'HOME']
(environ['HOME']
i Windows) sökvägen till din hemkatalog, motsvarandegetenv("HOME")
i C.Om du ändrar den här ordlistan påverkar det inte den strängmiljö som skickas vidare av
execv()
,popen()
ellersystem()
; om du behöver ändra miljön skickar duenviron
tillexecve()
eller lägger till variabeltilldelningar och exportsatser i kommandosträngen försystem()
ellerpopen()
.Ändrad i version 3.2: På Unix är nycklar och värden bytes.
Anteckning
Modulen
os
tillhandahåller en alternativ implementation avenviron
som uppdaterar miljön vid modifiering. Observera också att uppdatering avos.environ
kommer att göra denna ordbok föråldrad. Användning avos
-modulens version av denna rekommenderas framför direkt åtkomst tillposix
-modulen.