close
Espacios de nombres
Variantes

std::filesystem::hard_link_count

De cppreference.com
 
 
 
<tbody> </tbody>
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.

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.

Valor de retorno

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

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()
{
    // 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

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]