Namespaces
Variants

std::filesystem:: hard_link_count

From cppreference.net
Определено в заголовочном файле <filesystem>
std:: uintmax_t hard_link_count ( const std:: filesystem :: path & p ) ;
(1) (начиная с C++17)
std:: uintmax_t hard_link_count ( const std:: filesystem :: path & p,
std:: error_code & ec ) noexcept ;
(2) (начиная с C++17)

Возвращает количество жёстких ссылок для объекта файловой системы, идентифицируемого путём p .

Непорождающая исключений перегрузка возвращает static_cast < uintmax_t > ( - 1 ) при ошибках.

Содержание

Параметры

p - путь для проверки
ec - выходной параметр для сообщения об ошибках в непорождающей исключения перегрузке

Возвращаемое значение

Количество жёстких ссылок для p .

Исключения

Любая перегрузка, не помеченная noexcept , может выбрасывать std::bad_alloc при неудачном выделении памяти.

1) Выбрасывает std::filesystem::filesystem_error при ошибках API базовой ОС, созданный с p в качестве первого аргумента пути и кодом ошибки ОС в качестве аргумента кода ошибки.
2) Устанавливает параметр std:: error_code & в код ошибки API операционной системы при сбое вызова API ОС, и выполняет ec. clear ( ) если ошибок не возникает.

Пример

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    // В файловой системе POSIX-стиля каждый каталог имеет как минимум 2 жёсткие ссылки:
    // себя и специальное имя пути "."
    fs::path p = fs::current_path();
    std::cout << "Number of hard links for current path is "
              << fs::hard_link_count(p) << '\n';
    // Каждый ".." является жёсткой ссылкой на родительский каталог, поэтому общее количество
    // жёстких ссылок для любого каталога равно 2 плюс количество прямых подкаталогов
    p = fs::current_path() / ".."; // Каждая точка-точка является жёсткой ссылкой на родительский каталог
    std::cout << "Number of hard links for .. is "
              << fs::hard_link_count(p) << '\n';
}

Возможный вывод:

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

Смотрите также

создает жесткую ссылку
(функция)
возвращает количество жестких ссылок, указывающих на файл, на который ссылается запись каталога
(публичная функция-член std::filesystem::directory_entry )