第二十八节 Linux系统编程- Linux系统编程管理文件和目录-getcwd获取当前目录(四)

-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.

第一:

 目录以及基础知识

在 linux 中,文件目录包含文件名列表,每一个文件名对应一个 inode 编号。目录中还能包含其它子目录,在 linux 中所有的目录和文件都是以树形结构组织的。既然是树形结构,那么肯定就有一个根,在 linux 下有一个根 root 目录,如下图所示,使
用命令“cd /”就可以进入 root 目录。

第二十八节 Linux系统编程- Linux系统编程管理文件和目录-getcwd获取当前目录(四)_第1张图片

root 目录指的是根目录。另外有一个 root 用户的概念,一个是目录中的概念,一个是 linux用户中的概念,不要混淆。

 

第二:`

实验-getcwd 函数

 linux命令中可以使用pwd查看当前目录,系统编程中可以通过getcwd获取当前目录
• man 3 getcwd

第二十八节 Linux系统编程- Linux系统编程管理文件和目录-getcwd获取当前目录(四)_第2张图片

如下图所示,有三个类似的函数 getcwd,getwd,get_current_dir_name


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

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

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

 

第三:

getcwd 函数例程

编写简单的 getcwd.c 文件测试 getcwd 函数。

#include 
/*getcwd、getwd和get_current_dir_name 函数的头文件*/
//定义“__USE_GNU”会让 get_current_dir_name 正常使用
#define __USE_GNU
#include 

#define LENTH 255
int main()
{
	char pwd[LENTH];
	char *wd;
//getcwd函数测试	
//使用 getcwd 函数获取当前目录并打印	
	if(!getcwd(pwd,LENTH)){
		perror("getcwd");
		return 1;
	}
	printf("\ngetcwd pwd is %s\n",pwd);
	
//getwd函数测试
//使用 getwd 函数获取当前目录并打印
	wd = getwd(pwd);
	if(!wd){
		perror("getcwd");
		return 1;
	}
	printf("\ngetwd pwd is %s\n",wd);
	
//get_current_dir_name函数测试	
//使用 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;
}

 

第四:

编译运行测试

1)在 Ubuntu 系统下,如下图所示,进入前面实验创建的目录
“/home/linuxsystemcode/CatlogFile”,将源码 getcwd.c 拷贝进去,进入新建的文件夹CatlogFile,如下图所示

第二十八节 Linux系统编程- Linux系统编程管理文件和目录-getcwd获取当前目录(四)_第3张图片

2)使用命令“arm-none-linux-gnueabi-gcc -o getcwd getcwd.c -static”编译 getwd 文件,如下图所示,使用命令“ls”可以看到生成了 getcwd 可执行文件。

第二十八节 Linux系统编程- Linux系统编程管理文件和目录-getcwd获取当前目录(四)_第4张图片

3)拷贝到挂载点

4)开发板挂载后运行文件

第二十八节 Linux系统编程- Linux系统编程管理文件和目录-getcwd获取当前目录(四)_第5张图片

 

 

你可能感兴趣的:(Linux,迅为)