名前空間
変種
操作

std::experimental::filesystem::hard_link_count

From cppreference.com
< cpp‎ | experimental‎ | fs
 
 
 
 
ヘッダー <experimental/filesystem> で定義されています
std::uintmax_t hard_link_count( const path& p );
std::uintmax_t hard_link_count( const path& p, error_code& ec );
(1) (filesystem TS)

パス p で識別されるファイルシステムオブジェクトのハードリンク数を返します。

例外を投げないオーバーロードは、エラーが発生した場合に static_cast<uintmax_t>(-1) を返します。

目次

[編集] パラメータ

p - 検査するパス
エラーコード - 例外を投げないオーバーロードでのエラー報告のための出力パラメータ

[編集] 戻り値

p のハードリンク数。

[編集] 例外

error_code& パラメータを取らないオーバーロードは、基盤となる OS API エラーが発生した場合に、最初の引数として p、エラーコード引数として OS エラーコードを使用して構築された filesystem_error をスローします。メモリ割り当てに失敗した場合は std::bad_alloc がスローされる可能性があります。error_code& パラメータを取るオーバーロードは、OS API 呼び出しが失敗した場合にそのエラーコードをセットし、エラーが発生しなかった場合は ec.clear() を実行します。このオーバーロードは
noexcept 指定:  
noexcept
  

[編集]

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::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

[編集] 関連項目

ハードリンクを作成する
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)