std::experimental::filesystem::read_symlink
Von cppreference.com
< cpp | experimental | fs
| Definiert im Header <experimental/filesystem> |
||
| path read_symlink( const path& p ); path read_symlink( const path& p, error_code& ec ); |
(Dateisystem-TS) | |
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 Non-Throwing-Überladung gibt bei Fehlern 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
Die Überladung, die keinen error_code&-Parameter nimmt, wirft filesystem_error bei zugrunde liegenden OS-API-Fehlern, konstruiert mit p als erstes Argument und dem OS-Fehlercode als Fehlercode-Argument. std::bad_alloc kann geworfen werden, wenn die Speicherzuweisung fehlschlägt. Die Überladung, die einen error_code&-Parameter nimmt, 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 hatnoexcept-Spezifikation:
noexcept
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { // on a typical Linux system, /lib/libc.so.6 is a symlink fs::path p = "/lib/libc.so.6"; if (exists(p) && is_symlink(p)) std::cout << p << " -> " << read_symlink(p) << '\n'; else std::cout << p << " does not exist or is not a symlink\n"; }
Mögliche Ausgabe
"/lib/libc.so.6" -> "libc-2.12.so"
[bearbeiten] Siehe auch
| prüft, ob das Argument auf einen symbolischen Link verweist (Funktion) | |
| erstellt einen symbolischen Link (Funktion) | |
| kopiert einen symbolischen Link (Funktion) | |
| ermittelt Dateiattribute ermittelt Dateiattribute, wobei das Ziel des symbolischen Links geprüft wird (Funktion) |