Namespaces
Variants

std::filesystem:: hard_link_count

From cppreference.net
Definido en el encabezado <filesystem>
std:: uintmax_t hard_link_count ( const std:: filesystem :: path & p ) ;
(1) (desde C++17)
std:: uintmax_t hard_link_count ( const std:: filesystem :: path & p,
std:: error_code & ec ) noexcept ;
(2) (desde C++17)

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

La sobrecarga que no lanza excepciones retorna static_cast < uintmax_t > ( - 1 ) en caso de errores.

Contenidos

Parámetros

p - ruta a examinar
ec - parámetro de salida para reporte de errores en la sobrecarga no lanzadora

Valor de retorno

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

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 SO falla, y ejecuta ec. clear ( ) si no ocurren errores.

Ejemplo

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    // En un sistema de archivos estilo POSIX, cada directorio tiene al menos 2 enlaces físicos:
    // él mismo y el nombre de ruta especial "."
    fs::path p = fs::current_path();
    std::cout << "Number of hard links for current path is "
              << fs::hard_link_count(p) << '\n';
    // Cada ".." es un enlace físico al directorio padre, por lo 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 directorio padre
    std::cout << "Number of hard links for .. is "
              << fs::hard_link_count(p) << '\n';
}

Salida posible:

Number of hard links for current path is 2
Number of hard links for .. is 3

Véase también

crea un enlace físico
(función)
devuelve el número de enlaces físicos que referencian al archivo al que se refiere la entrada de directorio
(función miembro pública de std::filesystem::directory_entry )