Namensräume
Varianten
Aktionen

std::experimental::filesystem::current_path

Von cppreference.com
< cpp‎ | experimental‎ | fs
 
 
 
 
Definiert im Header <experimental/filesystem>
path current_path();
(1) (Dateisystem-TS)
path current_path( error_code& ec );
(2) (Dateisystem-TS)
void current_path( const path& p );
(3) (Dateisystem-TS)
void current_path( const path& p, error_code& ec );
(4) (Dateisystem-TS)

Gibt den aktuellen Pfad zurück oder ändert ihn.

1,2) Gibt den absoluten Pfad des aktuellen Arbeitsverzeichnisses zurück, erhalten als ob durch POSIX getcwd. (2) gibt path() zurück, wenn ein Fehler auftritt.
3,4) Ändert das aktuelle Arbeitsverzeichnis zu p, als ob durch POSIX chdir.

Inhalt

[edit] Parameter

p - Pfad, zu dem das aktuelle Arbeitsverzeichnis geändert werden soll
ec - Ausgabeparameter für Fehlerberichte in den nicht-werfenden Überladungen

[edit] Rückgabewert

1,2) Gibt das aktuelle Arbeitsverzeichnis zurück.
3,4) (keine)

[edit] Ausnahmen

1,2) Die Überladung, die keinen error_code&-Parameter verwendet, löst filesystem_error bei zugrundeliegenden OS-API-Fehlern aus, konstruiert mit dem OS-Fehlercode als Fehlercode-Argument. std::bad_alloc kann ausgelöst werden, wenn die Speicherzuweisung fehlschlägt. Die Überladung, die einen error_code&-Parameter verwendet, setzt diesen auf den OS-API-Fehlercode, wenn ein OS-API-Aufruf fehlschlägt, und führt ec.clear() aus, wenn keine Fehler auftreten. Diese Überladung hat
noexcept-Spezifikation:  
noexcept
  
3,4) Die Überladung, die keinen error_code&-Parameter verwendet, löst filesystem_error bei zugrundeliegenden OS-API-Fehlern aus, konstruiert mit p als erstes Argument und dem OS-Fehlercode als Fehlercode-Argument. std::bad_alloc kann ausgelöst werden, wenn die Speicherzuweisung fehlschlägt. Die Überladung, die einen error_code&-Parameter verwendet, setzt diesen auf den OS-API-Fehlercode, wenn ein OS-API-Aufruf fehlschlägt, und führt ec.clear() aus, wenn keine Fehler auftreten. Diese Überladung hat
noexcept-Spezifikation:  
noexcept
  

[edit] Hinweise

Das aktuelle Arbeitsverzeichnis ist das Verzeichnis, das als Startpunkt bei der Pfadauflösung für relative Pfade verwendet wird. Ein einziges aktuelles Arbeitsverzeichnis ist mit dem gesamten Prozess verbunden.

Das aktuelle Arbeitsverzeichnis ist ein gefährlicher globaler Zustand des Programms. Das Verhalten verschiedener Datei-Ein-/Ausgabe-bezogener Funktionen wird durch den Wert des aktuellen Pfads beeinflusst. Der aktuelle Pfad kann unerwartet von jeder Komponente des Programms geändert werden, einschließlich verschiedener externer Bibliotheken oder anderer Threads.

[edit] Siehe auch