Signatur
Beschreibung
posix_getcwd() liefert den absoluten Pfadnamen des aktuellen Arbeitsverzeichnisses des laufenden PHP-Prozesses. Die Funktion entspricht dem POSIX-Systemaufruf getcwd() und ist auf POSIX-kompatiblen Betriebssystemen (Linux, macOS, BSD usw.) verfügbar.
Im Gegensatz zur PHP-eigenen Funktion getcwd() verwendet posix_getcwd() direkt den nativen POSIX-Aufruf ohne zusätzliche PHP-interne Abstraktionsschichten. Das macht sie besonders nützlich, wenn man in Low-Level-Prozessumgebungen oder POSIX-nahen Kontexten arbeitet, beispielsweise beim Schreiben von Daemon-Prozessen oder CLI-Werkzeugen.
Die Funktion gibt bei Erfolg einen String mit dem absoluten Pfad zurück und false, wenn das aktuelle Verzeichnis nicht ermittelt werden kann — etwa wenn der Prozess keine Leserechte auf das aktuelle Verzeichnis hat oder dieses zwischenzeitlich gelöscht wurde.
Diese Funktion ist Teil der POSIX-Erweiterung (ext/posix), die auf Windows-Systemen nicht verfügbar ist. Für plattformübergreifenden Code empfiehlt sich stattdessen getcwd().
Rückgabewert
false zurückgegeben.Beispiele
Aktuelles Arbeitsverzeichnis ausgeben
<?php
$cwd = posix_getcwd();
if ($cwd === false) {
echo 'Fehler: Arbeitsverzeichnis konnte nicht ermittelt werden.';
} else {
echo 'Aktuelles Verzeichnis: ' . $cwd;
}
Arbeitsverzeichnis nach chdir() prüfen
<?php
echo 'Vorher: ' . posix_getcwd() . PHP_EOL;
chdir('/tmp');
echo 'Nachher: ' . posix_getcwd() . PHP_EOL;
// Wichtig · Fallstricke
Plattformabhängigkeit: posix_getcwd() steht ausschließlich auf POSIX-kompatiblen Systemen zur Verfügung. Unter Windows ist die POSIX-Erweiterung nicht verfügbar. Für portablen Code sollte stattdessen die PHP-Standardfunktion getcwd() verwendet werden.
Gelöschtes Verzeichnis: Wurde das aktuelle Arbeitsverzeichnis des Prozesses gelöscht (was unter Unix möglich ist, solange der Prozess es geöffnet hält), kann posix_getcwd() false zurückgeben, während getcwd() unter Umständen noch einen (synthetischen) Pfad liefert.