std::filesystem:: current_path
From cppreference.net
<
cpp
|
filesystem
|
ヘッダーで定義
<filesystem>
|
||
|
path current_path
(
)
;
|
(1) | (C++17以降) |
|
path current_path
(
std::
error_code
&
ec
)
;
|
(2) | (C++17以降) |
|
void
current_path
(
const
std::
filesystem
::
path
&
p
)
;
|
(3) | (C++17以降) |
|
void
current_path
(
const
std::
filesystem
::
path
&
p,
std:: error_code & ec ) noexcept ; |
(4) | (C++17以降) |
現在のパスを返す、または変更します。
1,2)
現在の作業ディレクトリの絶対パスを返します。このパスはPOSIXの
getcwd
によって(ネイティブ形式で)取得されたかのように得られます。
(2)
はエラーが発生した場合
path
(
)
を返します。
目次 |
パラメータ
| p | - | 現在の作業ディレクトリを変更するパス |
| ec | - | 例外を投げないオーバーロードにおけるエラー報告用出力パラメータ |
戻り値
1,2)
現在の作業ディレクトリを返します。
3,4)
(なし)
例外
noexcept
でマークされていないオーバーロードは、
メモリ確保に失敗した場合に
std::bad_alloc
をスローする可能性があります。
1)
基盤となるOS APIエラーが発生した場合、
std::filesystem::filesystem_error
をスローします。この例外はOSエラーコードをエラーコード引数として構築されます。
2)
OS API呼び出しが失敗した場合、
std::
error_code
&
パラメータにOS APIエラーコードを設定し、エラーが発生しなかった場合は
ec.
clear
(
)
を実行します。
3)
基盤となるOS APIエラーが発生した場合、
std::filesystem::filesystem_error
をスローします。これは
p
を第一パス引数、OSエラーコードをエラーコード引数として構築されます。
4)
OS API呼び出しが失敗した場合、
std::
error_code
&
パラメータにOS APIエラーコードを設定し、エラーが発生しなかった場合は
ec.
clear
(
)
を実行します。
注記
現在の作業ディレクトリは、相対パスのパス名解決において開始位置として使用される、プロセスに関連付けられたディレクトリです。
多くのオペレーティングシステムで返される現在のパスは危険なグローバル変数です。サードパーティやシステムライブラリ関数によって、あるいは別のスレッドによって予期せず変更される可能性があります。
例
このコードを実行
出力例:
Current path is "D:/local/ConsoleApplication1" Current path is "E:/Temp"
関連項目
|
(C++17)
|
一時ファイルに適したディレクトリを返す
(関数) |