目录
一.getcwd函数是什么
二.getcwd函数怎么用
一.getcwd函数是什么
在C++中, getcwd 是一个用于获取当前工作目录的函数,它是POSIX标准的一部分,定义在 <unistd.h> 头文件中(在Windows上,它定义在 <direct.h> 中)。
getcwd 函数的原型如下:
char *getcwd(char *buf, size_t size);
这里的参数解释如下:
buf :一个指向字符数组的指针,用于存储当前工作目录的路径。如果这个参数是 NULL , getcwd 会分配一个足够大的缓冲区来存储路径。
size :缓冲区的大小,以字节为单位。
函数返回指向 buf 的指针,如果调用成功,返回的指针指向包含当前工作目录路径的字符串;如果失败,返回 NULL ,并且可以通过 errno 来获取错误代码。
二.getcwd函数怎么用
下面是一个使用 getcwd 函数的简单示例:
#include <iostream>
#include <unistd.h> // POSIX.1 version
// 在Windows上使用 <direct.h>int main() {char buff[1024];if (getcwd(buff, sizeof(buff)) != NULL) {std::cout << "Current directory: " << buff << std::endl;} else {perror("getcwd() error");return 1;}return 0;
}
请注意,由于 getcwd 可能会改变 errno 的值,因此在使用它之后,如果需要检查错误,应该立即检查 errno 。此外,如果 getcwd 分配了缓冲区(当 buf 为 NULL 时),调用者有责任释放这个缓冲区,以避免内存泄漏。在C++17中,可以使用 std::optional<std::string> 来简化错误处理。