Defined in header <filesystem> | ||
---|---|---|
path current_path(); | (1) | (since C++17) |
path current_path( std::error_code& ec ); | (2) | (since C++17) |
void current_path( const std::filesystem::path& p ); | (3) | (since C++17) |
void current_path( const std::filesystem::path& p, std::error_code& ec ); | (4) | (since C++17) |
Returns or changes the current path.
path()
if error occurs.p | - | path to change the current working directory to |
ec | - | out-parameter for error reporting in the non-throwing overloads |
std::error_code&
parameter throws filesystem_error on underlying OS API errors, constructed with the OS error code as the error code argument. std::bad_alloc
may be thrown if memory allocation fails. The overload taking a std::error_code&
parameter sets it to the OS API error code if an OS API call fails, and executes ec.clear()
if no errors occur. This overload has noexcept
specification: noexcept
std::error_code&
parameter throws filesystem_error on underlying OS API errors, constructed with p
as the first argument and the OS error code as the error code argument. std::bad_alloc
may be thrown if memory allocation fails. The overload taking a std::error_code&
parameter sets it to the OS API error code if an OS API call fails, and executes ec.clear()
if no errors occur. This overload has noexcept
specification: noexcept
The current working directory is the directory that is used as the starting location in path resolution for relative paths. Single current working directory is associated with entire process.
The current working directory is a dangerous global state of the program. Behavior of various file input/output related functions are affected by the value of the current path. The current path may be unexpectedly changed by any component of the program, including various external libraries or other threads.
#include <iostream> #include <filesystem> namespace fs = std::filesystem; int main() { std::cout << "Current path is " << fs::current_path() << '\n'; }
Possible output:
Current path is "D:/local/ConsoleApplication1"
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/filesystem/current_path