名前空間
変種
操作

std::experimental::filesystem::current_path

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

現在のパスを返したり、変更したりします。

1,2) POSIX の getcwd のように取得された、現在の作業ディレクトリの絶対パスを返します。(2) エラーが発生した場合は path() を返します。
3,4) POSIX の chdir のように、現在の作業ディレクトリを p に変更します。

目次

[編集] パラメータ

p - 現在の作業ディレクトリを変更するパス
エラーコード - 例外を投げないオーバーロードでのエラー報告用アウトパラメータ

[編集] 戻り値

1,2) 現在の作業ディレクトリを返します。
3,4) (なし)

[編集] 例外

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

[編集] 注意

現在の作業ディレクトリは、相対パスのパス解決の開始場所として使用されるディレクトリです。単一の現在の作業ディレクトリは、プログラム全体に関連付けられます。

現在の作業ディレクトリは、プログラムの危険なグローバル状態です。さまざまなファイル入出力関連関数の動作は、現在のパスの値に影響されます。現在のパスは、さまざまな外部ライブラリや他のスレッドを含む、プログラムのあらゆるコンポーネントによって予期せず変更される可能性があります。

[編集] 関連項目

English 日本語 中文(简体) 中文(繁體)