Namespaces
Variants

std::experimental::filesystem:: current_path

From cppreference.net
ヘッダーで定義 <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) 現在の作業ディレクトリを p に変更します。POSIXの chdir と同様の動作です。

目次

パラメータ

p - カレントワーキングディレクトリを変更するパス
ec - 非スローオーバーロードでのエラー報告用出力パラメータ

戻り値

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

例外

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

注記

現在の作業ディレクトリは、相対パスの解決において起点として使用されるディレクトリです。単一の現在作業ディレクトリがプロセス全体に関連付けられています。

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

関連項目