Namensräume
Varianten
Aktionen

std::filesystem::hard_link_count

Von cppreference.com
 
 
 
Definiert in Header <filesystem>
std::uintmax_t hard_link_count( const std::filesystem::path& p );
(1) (seit C++17)
std::uintmax_t hard_link_count( const std::filesystem::path& p,
                                std::error_code& ec ) noexcept;
(2) (seit C++17)

Gibt die Anzahl der Hardlinks für das Dateisystemobjekt zurück, das durch den Pfad p identifiziert wird.

Die nicht werfende Überladung gibt im Fehlerfall static_cast<uintmax_t>(-1) zurück.

Inhalt

[bearbeiten] Parameter

p - Zu untersuchender Pfad
ec - Ausgabeparameter für die Fehlerberichterstattung in der nicht auslösenden Überladung

[bearbeiten] Rückgabewert

Die Anzahl der Hardlinks für p.

[bearbeiten] Ausnahmen

Jede Überladung, die nicht als noexcept markiert ist, kann std::bad_alloc auslösen, wenn die Speicherzuweisung fehlschlägt.

1) Wirft std::filesystem::filesystem_error bei zugrundeliegenden Betriebssystem-API-Fehlern, konstruiert mit p als erstem Pfadargument und dem Betriebssystem-Fehlercode als Fehlercodeargument.
2) Setzt einen std::error_code& Parameter auf den Betriebssystem-API-Fehlercode, wenn ein Betriebssystem-API-Aufruf fehlschlägt, und führt ec.clear() aus, wenn keine Fehler auftreten.

[bearbeiten] Beispiel

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
 
int main()
{
    // On a POSIX-style filesystem, each directory has at least 2 hard links:
    // itself and the special member pathname "."
    fs::path p = fs::current_path();
    std::cout << "Number of hard links for current path is "
              << fs::hard_link_count(p) << '\n';
 
    // Each ".." is a hard link to the parent directory, so the total number
    // of hard links for any directory is 2 plus number of direct subdirectories
    p = fs::current_path() / ".."; // Each dot-dot is a hard link to parent
    std::cout << "Number of hard links for .. is "
              << fs::hard_link_count(p) << '\n';
}

Mögliche Ausgabe

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

[bearbeiten] Siehe auch

erstellt einen Hardlink
(Funktion) [bearbeiten]
gibt die Anzahl der Hartlinks zurück, die auf die Datei verweisen, auf die der Verzeichniseintrag verweist
(public member function of std::filesystem::directory_entry) [bearbeiten]