std::filesystem::current_path
From cppreference.com
< 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 | - | 現在のワーキングディレクトリを変更するパス |
| エラーコード | - | 例外を投げないオーバーロードでのエラー報告用アウトパラメータ |
[編集] 戻り値
1,2) 現在のワーキングディレクトリを返します。
3,4) (なし)
[編集] 例外
noexcept とマークされていないオーバーロードは、メモリ割り当てが失敗した場合に std::bad_alloc をスローする可能性があります。
1) 基盤となるOS APIエラーが発生した場合、 std::filesystem::filesystem_error をスローします。この例外は、OSエラーコードをエラーコード引数として構築されます。
3) 基盤となるOS APIエラーが発生した場合、 std::filesystem::filesystem_error をスローします。この例外は、最初のパス引数として p、エラーコード引数としてOSエラーコードを渡して構築されます。
[編集] 注釈
現在のワーキングディレクトリとは、プロセスに関連付けられており、相対パスのパス名解決の開始場所として使用されるディレクトリのことです。
多くのオペレーティングシステムで返される現在のパスは、危険なグローバル変数です。サードパーティ製またはシステムライブラリの関数、あるいは別のスレッドによって予期せず変更される可能性があります。
[編集] 例
このコードを実行
実行結果の例
Current path is "D:/local/ConsoleApplication1" Current path is "E:/Temp"
[編集] 関連項目
| (C++17) |
一時ファイルに適したディレクトリを返す (関数) |