Espacios de nombres
Variantes
Acciones

std::filesystem::hard_link_count

De cppreference.com
 
 
 
Definido en el archivo de encabezado <filesystem>
std::uintmax_t hard_link_count( const std::filesystem::path& p );

std::uintmax_t hard_link_count( const std::filesystem::path& p,

                                std::error_code& ec ) noexcept;
(1) (desde C++17)

Devuelve el número de enlaces físicos para el objeto de sistema de archivo identificado por la ruta de acceso p.

La sobrecarga que no lanza excepciones devuelve static_cast<uintmax_t>(-1) si hay errores.

Contenido

[editar] Parámetros

p - La ruta de acceso a examinar.
ec - El parámetro de salida para reportar errores en la sobrecarga que no lanza excepciones.

[editar] Valor de retorno

El número de enlaces físicos para p.

[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()
{
    // En un sistema de archivos estilo POSIX, cada directorio tiene al menos
    // dos enlaces físicos: él mismo y el miembro especial,
    // nombre de ruta de acceso "."
    fs::path p = fs::current_path();
    std::cout << "El número de enlaces físicos para la ruta de acceso actual es "
              << fs::hard_link_count(p) << '\n';
 
    // cada ".." es un enlace físico al directorio padre, así que el número total
    // de enlaces físicos para cualquier directorio es 2 más el número de
    // subdirectorios directos
    p = fs::current_path() / ".."; // cada punto-punto es un enlace físico al padre
    std::cout << "El número de enlaces físicos para .. es "
              << fs::hard_link_count(p) << '\n';
}

Posible salida:

El número de enlaces físicos para la ruta de acceso actual es 2
El número de enlaces físicos para .. es 3

[editar] Véase también

Crea un enlace físico.
(función) [editar]
Devuelve el número de enlaces físicos que se refieren al archivo al que se refiere la entrada de directorio.
(función miembro pública de std::filesystem::directory_entry) [editar]