getcwd()
是一个 C++ 标准库函数,用于获取当前工作目录的路径
- 包含头文件:首先,你需要包含
头文件,因为getcwd()
函数在这个头文件中声明。
#include#include #include
-
检查返回值:
getcwd()
函数返回一个指向字符数组的指针,该数组包含当前工作目录的路径。如果函数成功执行,它将返回一个非空指针。如果失败,它将返回nullptr
。因此,你需要检查返回值是否为nullptr
,并在这种情况下处理错误。 -
分配足够的空间:
getcwd()
函数返回的字符数组的大小取决于当前工作目录的路径长度。为了避免缓冲区溢出,你需要为返回的字符串分配足够的空间。你可以使用sysconf(_SC_PATH_MAX)
函数获取路径的最大长度。
#includesize_t path_max = sysconf(_SC_PATH_MAX); char *buffer = new char[path_max];
- 调用
getcwd()
:现在你可以调用getcwd()
函数并将结果存储在之前分配的缓冲区中。
if (getcwd(buffer, path_max) != nullptr) { std::cout << "Current working directory: " << buffer << std::endl; } else { perror("getcwd() error"); delete[] buffer; return 1; }
- 释放内存:最后,不要忘记释放之前分配的缓冲区。
delete[] buffer;
将以上代码片段组合在一起,完整的示例程序如下:
#include#include #include #include int main() { size_t path_max = sysconf(_SC_PATH_MAX); char *buffer = new char[path_max]; if (getcwd(buffer, path_max) != nullptr) { std::cout << "Current working directory: " << buffer << std::endl; } else { perror("getcwd() error"); delete[] buffer; return 1; } delete[] buffer; return 0; }
这个程序将输出当前工作目录的路径。如果发生错误,它将输出错误消息并返回非零值。