Namespaces
Variants

std::filesystem:: absolute

From cppreference.net
Definiert im Header <filesystem>
path absolute ( const std:: filesystem :: path & p ) ;
(1) (seit C++17)
path absolute ( const std:: filesystem :: path & p, std:: error_code & ec ) ;
(2) (seit C++17)

Gibt einen Pfad zurück, der auf den gleichen Dateisystemort verweist wie p , für den filesystem::path::is_absolute() true ist.

2) Diese nicht-werfende Überladung gibt einen standardmäßig konstruierten Pfad zurück, falls ein Fehler auftritt.

Inhaltsverzeichnis

Parameter

p - Pfad, der in absolute Form umgewandelt werden soll
ec - Out-Parameter für Fehlerberichterstattung in der nicht-werfenden Überladung

Rückgabewert

Gibt einen absoluten (wenn auch nicht notwendigerweise kanonischen) Pfadnamen zurück, der auf dieselbe Datei verweist wie p .

Exceptions

Jede Überladung, die nicht als noexcept gekennzeichnet ist, kann std::bad_alloc auslösen, wenn die Speicherzuweisung fehlschlägt.

1) Wirft std::filesystem::filesystem_error bei zugrundeliegenden OS-API-Fehlern, konstruiert mit p als erstem Pfadargument und dem OS-Fehlercode als Fehlercodeargument.
2) Setzt einen std:: error_code & Parameter auf den OS-API-Fehlercode, falls ein OS-API-Aufruf fehlschlägt, und führt ec. clear ( ) aus, falls keine Fehler auftreten.

Hinweise

Implementierungen wird empfohlen, das Nichtvorhandensein von p nicht als Fehler zu betrachten.

Für POSIX-basierte Betriebssysteme ist std :: filesystem :: absolute ( p ) äquivalent zu std:: filesystem :: current_path ( ) / p außer wenn p der leere Pfad ist.

Für Windows, std::filesystem::absolute kann als Aufruf von GetFullPathNameW implementiert sein.

Beispiel

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    std::filesystem::path p = "foo.c";
    std::cout << "Current path is " << std::filesystem::current_path() << '\n';
    std::cout << "Absolute path for " << p << " is " << fs::absolute(p) << '\n';
}

Mögliche Ausgabe:

Current path is "/tmp/1666297965.0051296"
Absolute path for "foo.c" is "/tmp/1666297965.0051296/foo.c"

Siehe auch

bildet einen kanonischen Pfad
(Funktion)
bildet einen relativen Pfad
(Funktion)