Espacios de nombres
Variantes
Acciones

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.

Contenido

[editar] 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.

[editar] Valor de retorno

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

[editar] 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.

[editar] 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

[editar] 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]