简单介绍读取存放信息的结构体:
struct dirent
{
long d_ino;/* inode number 索引节点号 */
off_t d_off; /* offset to this dirent 在目录文件中的偏移 */
unsignedshort d_reclen;/* length of this d_name 文件名长 */
unsignedchar d_type;/* the type of d_name 文件类型 */
char d_name [NAME_MAX+1]; /* file name (null-terminated) 文件名,最长255字符 */
}
晒出一个示例如下:
#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
DIR *dirptr = NULL;
struct dirent *entry;
if(argv[1]==NULL)
{
printf("please input dir you want to read\n");
exit(-1);
}
if((dirptr = opendir(argv[1])) == NULL)
{
printf("open dir !");
return 1;
}
else
{
do
{
entry = readdir(dirptr) ;
if(entry!=NULL)
{
printf("%s\n", entry->d_name);
}
}while (entry);
closedir(dirptr);
}
return 0;
}
对其中的说明:
在Linux下编译此c文件,运行时给出你想要读取目录中文件的目录位置。
dirptr就保存了这些信息,之后,dirptr一次偏移将读取到的目录中的各个文件一次打印出。