Start · Sprachen · PHP · Referenz · posix_getcwd

posix_getcwd

Funktion

Gibt den absoluten Pfad des aktuellen Arbeitsverzeichnisses des Prozesses zurück.

seit PHP 4.0.0 Kategorie: misc

Signatur

posix_getcwd(): string|false

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

Typ
string|false
Beschreibung
Gibt bei Erfolg einen String mit dem absoluten Pfadnamen des aktuellen Arbeitsverzeichnisses zurück. Schlägt der Aufruf fehl (z. B. wegen fehlender Berechtigungen), wird 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;
}
Aktuelles Verzeichnis: /var/www/html

Arbeitsverzeichnis nach chdir() prüfen

<?php
echo 'Vorher: ' . posix_getcwd() . PHP_EOL;

chdir('/tmp');

echo 'Nachher: ' . posix_getcwd() . PHP_EOL;
Vorher: /var/www/html Nachher: /tmp

// 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.

Siehe auch