getcwd()获取当前目录

时间:2021-09-13 12:03:04

1、inux命令中可以使用pwd查看当前目录,系统编程中可以通过getcwd获取当前目录。

2、man 3 getcwd

3、char *getcwd(char *buf, size_t size);
     –参数*buf:保存当前目录的缓冲区
     –参数size:在现代linux 中,buf 的长度至少可以为255 字节
     –返回值:成功返回指向当前目录的指针,和buf 的值一样,错误返回NULL

4、char *getwd(char *buf);该函数已经过时,使用的时候会有警告
     –参数*buf:保存当前目录的缓冲区
     –返回值:成功返回指向当前目录的指针,和buf 的值一样,错误返回NULL

5、char *get_current_dir_name(void);
    –参数:无
    –返回值:成功返回指向当前目录的指针,错误返回NULL


例:

#include <stdio.h>
/*getcwd、getwd和get_current_dir_name
函数的头文件*/
#define __USE_GNU
#include <unistd.h>

#define LENTH 255
int main()
{
char pwd[LENTH];
char *wd;
//getcwd函数测试
if(!getcwd(pwd,LENTH)){
perror("getcwd");
return 1;
}
printf("\ngetcwd pwd is %s\n",pwd);

//getwd函数测试
wd = getwd(pwd);
if(!wd){
perror("getcwd");
return 1;
}
printf("\ngetwd pwd is %s\n",wd);

//get_current_dir_name函数测试
wd = get_current_dir_name();
if(!wd){
perror("getcwd");
return 1;
}
printf("\nget_current pwd is %s\n",wd);

return 0;
}