std::filesystem::hard_link_count
Defined in header <filesystem> |
||
|---|---|---|
std::uintmax_t hard_link_count( const std::filesystem::path& p ); |
(1) | (since C++17) |
std::uintmax_t hard_link_count( const std::filesystem::path& p,
std::error_code& ec ) noexcept;
|
(2) | (since 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()
{
// 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';
}Возможный вывод:
Number of hard links for current path is 2 Number of hard links for .. is 3
См. также
|
(C++17)
|
создаёт жёсткую ссылку (функция) |
| возвращает количество жёстких ссылок, ссылающихся на файл, которому относится запись каталога (публичный метод std::filesystem::directory_entry) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/filesystem/hard_link_count