Namespaces
Variants

std::filesystem:: read_symlink

From cppreference.net
Défini dans l'en-tête <filesystem>
(1) (depuis C++17)
(2) (depuis C++17)

Si le chemin p fait référence à un lien symbolique, retourne un nouvel objet de chemin qui fait référence à la cible de ce lien symbolique.

C'est une erreur si p ne fait pas référence à un lien symbolique.

La surcharge non levante retourne un chemin vide en cas d'erreurs.

Table des matières

Paramètres

p - chemin vers un lien symbolique
ec - paramètre de sortie pour le rapport d'erreur dans la surcharge non-lancée

Valeur de retour

La cible du lien symbolique (qui peut ne pas nécessairement exister).

Exceptions

Toute surcharge non marquée noexcept peut lever std::bad_alloc si l'allocation de mémoire échoue.

1) Lance std::filesystem::filesystem_error en cas d'erreurs de l'API système sous-jacente, construit avec p comme premier argument de chemin et le code d'erreur du système comme argument de code d'erreur.
2) Définit un paramètre std:: error_code & au code d'erreur de l'API du système d'exploitation si un appel d'API du système d'exploitation échoue, et exécute ec. clear ( ) si aucune erreur ne survient.

Exemple

#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";
    }
}

Sortie possible :

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

Voir aussi

(C++17)
vérifie si l'argument fait référence à un lien symbolique
(fonction)
crée un lien symbolique
(fonction)
copie un lien symbolique
(fonction)
(C++17) (C++17)
détermine les attributs de fichier
détermine les attributs de fichier en vérifiant la cible du lien symbolique
(fonction)