Namespaces
Variants

std::experimental::filesystem:: current_path

From cppreference.net
定义于头文件 <experimental/filesystem>
path current_path ( ) ;
(1) (文件系统 TS)
path current_path ( error_code & ec ) ;
(2) (文件系统 TS)
void current_path ( const path & p ) ;
(3) (文件系统 TS)
void current_path ( const path & p, error_code & ec ) ;
(4) (文件系统 TS)

返回或更改当前路径。

1,2) 返回当前工作目录的绝对路径,获取方式类似于 POSIX getcwd (2) 在发生错误时返回 path ( )
3,4) 将当前工作目录更改为 p ,如同通过 POSIX chdir 实现。

目录

参数

p - 要更改当前工作目录的路径
ec - 非抛出重载中用于错误报告的输出参数

返回值

1,2) 返回当前工作目录。
3,4) (无)

异常

1,2) 不接受 error_code & 参数的重载在底层操作系统 API 出错时会抛出 filesystem_error 异常,该异常使用操作系统错误代码作为其错误码参数进行构造。若内存分配失败则可能抛出 std:: bad_alloc 。接受 error_code & 参数的重载在操作系统 API 调用失败时将其设置为对应的 API 错误码,若无错误发生则执行 ec. clear ( ) 。此重载具有
noexcept 规范:
noexcept
3,4) 不接受 error_code & 参数的重载版本在底层操作系统 API 出错时会抛出 filesystem_error 异常,该异常以 p 作为第一参数、操作系统错误码作为错误码参数构造。若内存分配失败则可能抛出 std:: bad_alloc 。接受 error_code & 参数的重载版本在操作系统 API 调用失败时将其设为对应的操作系统错误码,若无错误发生则执行 ec. clear ( ) 。此重载版本具有
noexcept 规范:
noexcept

注释

当前工作目录是用于在相对路径解析中作为起始位置的目录。单个当前工作目录与整个进程相关联。

当前工作目录是程序的一个危险全局状态。各种文件输入/输出相关函数的行为都会受到当前路径值的影响。当前路径可能被程序的任何组件意外更改,包括各类外部库或其他线程。

参见