Namensräume
Varianten
Aktionen

std::filesystem::read_symlink

Von cppreference.com
 
 
 
Definiert in Header <filesystem>
(1) (seit C++17)
std::filesystem::path read_symlink( const std::filesystem::path& p,
                                    std::error_code& ec );
(2) (seit C++17)

Wenn der Pfad p auf einen symbolischen Link verweist, wird ein neues Pfadobjekt zurückgegeben, das auf das Ziel dieses symbolischen Links verweist.

Es ist ein Fehler, wenn p nicht auf einen symbolischen Link verweist.

Die nicht-werfende Überladung gibt im Fehlerfall einen leeren Pfad zurück.

Inhalt

[bearbeiten] Parameter

p - Pfad zu einem Symlink
ec - Ausgabeparameter für die Fehlerberichterstattung in der nicht auslösenden Überladung

[bearbeiten] Rückgabewert

Das Ziel des Symlinks (das nicht notwendigerweise existieren muss).

[bearbeiten] Ausnahmen

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

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

[bearbeiten] Beispiel

#include <filesystem>
#include <iostream>
 
namespace fs = std::filesystem;
 
int main()
{
    for (fs::path p : {"/usr/bin/gcc", "/bin/cat", "/bin/mouse"})
    {
        std::cout << p;
        fs::exists(p) ?
            fs::is_symlink(p) ?
                std::cout << " -> " << fs::read_symlink(p) << '\n' :
                std::cout << " exists but it is not a symlink\n" :
            std::cout << " does not exist\n";
    }
}

Mögliche Ausgabe

"/usr/bin/gcc" -> "gcc-5"
"/bin/cat" exists but it is not a symlink
"/bin/mouse" does not exist

[bearbeiten] Siehe auch

prüft, ob das Argument auf einen symbolischen Link verweist
(Funktion) [bearbeiten]
erstellt einen symbolischen Link
(Funktion) [bearbeiten]
kopiert einen symbolischen Link
(Funktion) [bearbeiten]
(C++17)(C++17)
ermittelt Dateiattribute
ermittelt Dateiattribute, wobei das Ziel des symbolischen Links geprüft wird
(Funktion) [bearbeiten]