第三十三节 Linux系统编程- Linux系统编程管理文件和目录-readdir读取目录信息(九)

这篇博客介绍了如何在Linux系统中使用readdir函数读取目录信息。首先,通过man命令学习了readdir函数的用法,强调了其与readdir_r的区别,并展示了dirent结构体的参数解释。接着,提供了一个简单的readdir.c测试程序,并在Ubuntu环境下编译运行。最后,说明了在开发板上运行该程序并查看d_ino参数的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

第一:

在前面使用opendir打开目录的基础上,可以使用readdir读取目录信息

使用 man 学习 readdir 函数

1)如下图所示,使用命令“man 3 readdir”。

2)如下图所示,有 readdir 和 readdir_r 两个函数,这里只介绍 readdir。

3)接着注意一下相关的函数,如下图所示

4)看一下参数的结构体 dirent,如下图所示。

如上图所示,各个参数的解释还是很清楚明了的。

 

5)函数介绍

读目录信息函数
• struct dirent *readdir(DIR *dirp);
– 参数dirp:opendir 函数打开目录后返回的文件指针。
– 返回值:成功返回指向dirp 的指针dirent ,错误返回NULL。

 

第二:

readdir 函数例程

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

#include <stdio.h>
//opendir,closedir,readdir函数头文件
#include <dirent.h>
#include <sys/types.h>

int main(int argc,char *argv[])
{
	int ret;
	DIR *dir;
	struct dirent *catlog;
//检测参数
//检测 main 的参数	
	if(argc <2){
		printf("\nPlease input file path\n");
		return 1;
	}
//使用opendir函数打开目录
//获取目录的 dir
	dir = opendir(argv[1]);
	if(dir==NULL){
		printf("opendir %s failed!\n",argv[1]);
		return 1;
	}
	printf("opendir %s suceces!\n",argv[1]);
//使用readdir读取目录argv[1]
//使用 readdir 函数读取目录,然后打印文件的 inode
	catlog = readdir(dir);
	if(catlog == NULL){
		printf("readdir %s failed!\n",argv[1]);
		return 1;
	}
	printf("%s d_ino is %ld\n ",argv[1],catlog->d_ino);
//使用closedir函数关闭目录
//关闭目录
	closedir(dir);
	
	return 0;
}

 

第三:

 编译运行测试

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

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

3)将文件拷贝到挂载点

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

如上图所示,这里只是读取了文件许多参数中的 d_ino,其它参数用户可以自己写小程序打印出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值