std::filesystem:: absolute
|
ヘッダーで定義
<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 となるものです。
目次 |
パラメータ
| p | - | 絶対形式に変換するパス |
| ec | - | 例外を投げないオーバーロードでのエラー報告用出力パラメータ |
戻り値
p が参照する同じファイルを参照する絶対(必ずしも正規化されているとは限らない)パス名を返します。
例外
noexceptでマークされていないオーバーロードは、
メモリ確保に失敗した場合に
std::bad_alloc
をスローする可能性があります。
注記
実装では、 p が存在しないことをエラーとみなさないことが推奨されます。
POSIXベースのオペレーティングシステムでは、 std :: filesystem :: absolute ( p ) は、 std:: filesystem :: current_path ( ) / p と同等です。ただし、 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)
|
相対パスを構成する
(関数) |