Espacios de nombres
Variantes

std::filesystem::read_symlink

De cppreference.com
 
 
 
Definido en el archivo de encabezado <filesystem>
std::filesystem::path read_symlink(const std::filesystem::path& p);
std::filesystem::path read_symlink(const std::filesystem::path& p,
                                   std::error_code& ec);
(desde C++17)

Si la ruta de acceso p se refiere a un enlace simbólico, devuelve un nuevo objeto ruta que se refiere al objetivo del enlace simbólico.

Es un error si p no se refiere a un enlace simbólico.

La sobrecarga que no lanza excepciones devuelve una ruta de acceso vacía si ocurren errores.

Parámetros

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

Valor de retorno

The target of the symlink (which may not necessarily exist)

Excepciones

La sobrecarga que no toma un parámetro std::error_code& lanza filesystem::filesystem_error en los errores de la API del sistema operativo subyacente, construido con p como el primer argumento de la ruta de acceso y el código de error del sistema operativo como el argumento del código de error. La sobrecarga que toma un parámetro std::error_code& lo establece en el 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. Cualquier sobrecarga que no está marcada con noexcept puede lanzar std::bad_alloc si la asignación de memoria falla.

Ejemplo

#include <iostream>
#include <filesystem>

namespace fs = std::filesystem;

int main()
{
    for(fs::path p : {"/usr/bin/gcc", "/bin/gato", "/bin/perro"}) {
        std::cout << p;
        fs::exists(p)
            ? fs::is_symlink(p)
            ? std::cout << " -> " << fs::read_symlink(p) << '\n'
            : std::cout << " existe pero no es un enlace simbólico\n"
            : std::cout << " no existe\n";
    }
}

Posible salida:

"/usr/bin/gcc" -> "gcc-5"
"/bin/gato" existe pero no es un enlace simbólico
"/bin/perro" no existe

Véase también

Verifica si el argumento se refiere a un enlace simbólico.
(función) [editar]
Crea un enlace simbólico.
(función) [editar]
Copia un enlace simbólico.
(función) [editar]
(C++17)(C++17)
Determina los atributos de archivo.
Determina los atributos de archivo, verificando el objetivo del enlace simbólico.
(función) [editar]