29 Input/output library [input.output]

29.11 File systems [filesystems]

29.11.13 Filesystem operation functions [fs.op.funcs]

29.11.13.12 Current path [fs.op.current.path]

path current_path(); path current_path(error_code& ec);
Returns: The absolute path of the current working directory, whose pathname in the native format is obtained as if by POSIX getcwd().
The signature with argument ec returns path() if an error occurs.
Throws: As specified in [fs.err.report].
Remarks: The current working directory is the directory, associated with the process, that is used as the starting location in pathname resolution for relative paths.
[Note 1:
The current_­path() name was chosen to emphasize that the returned value is a path, not just a single directory name.
— end note]
[Note 2:
The current path as returned by many operating systems is a dangerous global variable.
It might be changed unexpectedly by third-party or system library functions, or by another thread.
— end note]
void current_path(const path& p); void current_path(const path& p, error_code& ec) noexcept;
Effects: Establishes the postcondition, as if by POSIX chdir().
Postconditions: equivalent(p, current_­path()).
Throws: As specified in [fs.err.report].
[Note 3:
The current path for many operating systems is a dangerous global state.
It might be changed unexpectedly by a third-party or system library functions, or by another thread.
— end note]