27 Input/output library [input.output]

27.10 File systems [filesystems]

27.10.15 Filesystem operation functions [fs.op.funcs]

27.10.15.11 Current path [fs.op.current_path]

path current_path(); path current_path(error_code& ec);

Returns: The absolute path of the current working directory, 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: The current_path() name was chosen to emphasize that the returned value is a path, not just a single directory name.

The current path as returned by many operating systems is a dangerous global variable. It may be changed unexpectedly by a 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: The current path for many operating systems is a dangerous global state. It may be changed unexpectedly by a third-party or system library functions, or by another thread.  — end note ]