用 c/c++ 获取当前工作目录的方法:getcwd
首先我们来看一下该函数的声明:
#include<unistd.h>
char* getcwd(char* buffer, size_t size);
用法介绍:
参数说明:getcwd 方法会将当前工作目录(working directory)的绝对路径复制到参数 buffer 所指的内存空间中,而参数 size 是 buffer 所指的空间大小。
- 第一种用法:
基于上面的解析我们很容易得到第一种用法。
#define MAX_SIZE 255
int main(int argc, const char* argv[]){
char path[MAX_SIZE];
getcwd(path,sizeof(path));
puts(path); // puts is equal to print. In c++ we can use: cout << path << endl;
return 0;
}
上面的方法会将当前工作目录的绝对路径复制到 path 所指的空间中,其中 size 通过宏定义 MAX_SIZE 给出。但是这种方法有个弊端。当我们的工作目录绝对路径长于所指定的 size 时,则会返回 NULL。所以用第一种方法时需要分配足够大的内存空间。linux的文件名长度