std::filesystem::absolute
From cppreference.com
< cpp | filesystem
| ヘッダー <filesystem> で定義 |
||
| path absolute( const std::filesystem::path& p ); |
(1) | (C++17以降) |
| path absolute( const std::filesystem::path& p, std::error_code& ec ); |
(2) | (C++17以降) |
pと同じファイルシステム上の場所を参照するパスを返します。このパスでは、filesystem::path::is_absolute()はtrueになります。
2) この例外を投げないオーバーロードは、エラーが発生した場合にデフォルト構築されたパスを返します。
目次 |
[編集] パラメータ
| p | - | 絶対形式に変換するパス |
| エラーコード | - | 例外を投げないオーバーロードでのエラー報告のための出力パラメータ |
[編集] 戻り値
pと同じファイルを指す、絶対(ただし必ずしも正規化されているとは限らない)パス名を返します。
[編集] 例外
noexcept とマークされていないオーバーロードは、メモリ割り当てが失敗した場合に std::bad_alloc をスローする可能性があります。
1) 基盤となるOS APIエラーが発生した場合、最初のパス引数としてp、エラーコード引数としてOSのエラーコードとともに構築されたstd::filesystem::filesystem_error を投げます。
[編集] 注意
pが存在しないことをエラーと見なさないことが実装に推奨されます。
POSIXベースのオペレーティングシステムでは、std::filesystem::absolute(p)は、pが空のパスである場合を除き、std::filesystem::current_path() / pと同等です。
Windowsでは、std::filesystem::absoluteはGetFullPathNameWの呼び出しとして実装される場合があります。
[編集] 例
このコードを実行
#include <filesystem> #include <iostream> namespace fs = std::filesystem; int main() { std::filesystem::path p = "foo.c"; std::cout << "Current path is " << std::filesystem::current_path() << '\n'; std::cout << "Absolute path for " << p << " is " << fs::absolute(p) << '\n'; }
実行結果の例
Current path is "/tmp/1666297965.0051296" Absolute path for "foo.c" is "/tmp/1666297965.0051296/foo.c"
[編集] 関連項目
| (C++17) |
正規パスを構成する (関数) |
| (C++17) |
相対パスを構成する (関数) |