-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.
第一:
在前面使用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,其它参数用户可以自己写小程序打印出来。