名前空間
変種
操作

std::experimental::filesystem::read_symlink

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

パス p がシンボリックリンクを参照している場合、そのシンボリックリンクのターゲットを参照する新しいパスオブジェクトを返します。

p がシンボリックリンクを参照していない場合はエラーとなります。

例外を投げないオーバーロードは、エラー時に空のパスを返します。

目次

[編集] パラメータ

p - シンボリックリンクへのパス
エラーコード - 例外を投げないオーバーロードでのエラー報告のための出力パラメータ

[編集] 戻り値

シンボリックリンクのターゲット(必ずしも存在するとは限りません)。

[編集] 例外

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

[編集]

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
 
int main()
{
    // on a typical Linux system, /lib/libc.so.6 is a symlink
    fs::path p = "/lib/libc.so.6";
    if (exists(p) && is_symlink(p))
        std::cout << p << " -> " << read_symlink(p) << '\n';
    else
        std::cout << p << " does not exist or is not a symlink\n";
}

実行結果の例

"/lib/libc.so.6" -> "libc-2.12.so"

[編集] 関連項目

引数がシンボリックリンクを参照しているか確認する
(関数) [編集]
シンボリックリンクを作成する
(関数) [編集]
シンボリックリンクをコピーする
(関数) [編集]
ファイルの属性を決定する
シンボリックリンクのターゲットを確認してファイルの属性を決定する
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)