Namespaces
Variants

std::filesystem:: hard_link_count

From cppreference.net
Défini dans l'en-tête <filesystem>
std:: uintmax_t hard_link_count ( const std:: filesystem :: path & p ) ;
(1) (depuis C++17)
std:: uintmax_t hard_link_count ( const std:: filesystem :: path & p,
std:: error_code & ec ) noexcept ;
(2) (depuis C++17)

Retourne le nombre de liens physiques pour l'objet du système de fichiers identifié par le chemin p .

La surcharge non levante retourne static_cast < uintmax_t > ( - 1 ) en cas d'erreurs.

Table des matières

Paramètres

p - chemin à examiner
ec - paramètre de sortie pour le rapport d'erreurs dans la surcharge non-lancante

Valeur de retour

Le nombre de liens physiques pour p .

Exceptions

Toute surcharge non marquée noexcept peut lever std::bad_alloc si l'allocation de mémoire échoue.

1) Lance std::filesystem::filesystem_error en cas d'erreurs de l'API système sous-jacente, construit avec p comme premier argument de chemin et le code d'erreur du système comme argument de code d'erreur.
2) Définit un paramètre std:: error_code & au code d'erreur de l'API du système d'exploitation si un appel d'API système échoue, et exécute ec. clear ( ) si aucune erreur ne survient.

Exemple

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    // Sur un système de fichiers de style POSIX, chaque répertoire a au moins 2 liens physiques :
    // lui-même et le nom de chemin spécial "."
    fs::path p = fs::current_path();
    std::cout << "Number of hard links for current path is "
              << fs::hard_link_count(p) << '\n';
    // Chaque ".." est un lien physique vers le répertoire parent, donc le nombre total
    // de liens physiques pour tout répertoire est 2 plus le nombre de sous-répertoires directs
    p = fs::current_path() / ".."; // Chaque point-point est un lien physique vers le parent
    std::cout << "Number of hard links for .. is "
              << fs::hard_link_count(p) << '\n';
}

Sortie possible :

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

Voir aussi

crée un lien physique
(fonction)
retourne le nombre de liens physiques référençant le fichier auquel l'entrée de répertoire fait référence
(fonction membre publique de std::filesystem::directory_entry )