std::filesystem::hard_link_count
Определён в заголовочном файле <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) При ошибках нижележащего API операционной системы выбрасывает
std::filesystem::filesystem_error, в конструктор которого передаётся p в качестве первого аргумента-пути, а код ошибки операционной системы — в качестве аргумента кода ошибки.
2) Если вызов API операционной системы завершается ошибкой, устанавливает для параметра
std::error_code& код ошибки 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/cpp/filesystem/hard_link_count