Namespaces
Variants

std::filesystem:: read_symlink

From cppreference.net
Definido en el encabezado <filesystem>
(1) (desde C++17)
(2) (desde C++17)

Si la ruta p hace referencia a un enlace simbólico, devuelve un nuevo objeto de ruta que hace referencia al destino de ese enlace simbólico.

Es un error si p no hace referencia a un enlace simbólico.

La sobrecarga que no lanza excepciones devuelve una ruta vacía en caso de errores.

Contenidos

Parámetros

p - ruta a un enlace simbólico
ec - parámetro de salida para reporte de errores en la sobrecarga que no lanza excepciones

Valor de retorno

El destino del enlace simbólico (que puede que no exista necesariamente).

Excepciones

Cualquier sobrecarga no marcada como noexcept puede lanzar std::bad_alloc si la asignación de memoria falla.

1) Lanza std::filesystem::filesystem_error en errores de la API del sistema operativo subyacente, construido con p como primer argumento de ruta y el código de error del sistema operativo como argumento de código de error.
2) Establece un parámetro std:: error_code & al código de error de la API del sistema operativo si una llamada a la API del sistema operativo falla, y ejecuta ec. clear ( ) si no ocurren errores.

Ejemplo

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

Salida posible:

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

Véase también

(C++17)
verifica si el argumento se refiere a un enlace simbólico
(función)
crea un enlace simbólico
(función)
copia un enlace simbólico
(función)
(C++17) (C++17)
determina los atributos del archivo
determina los atributos del archivo, verificando el destino del enlace simbólico
(función)