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
[編集] 関連項目
| ハードリンクを作成する (関数) |