dirent.h是unix类目录操作的头文件

是POSIX.1标准定义的unix类目录操作的头文件,包含了许多UNIX系统服务的函数原型,例如opendir函数、readdir函数.

例:

opendir函数:
DIR *opendir(const char *pathname);返回值:若成功则返回 指针,若出错则返回NULL。
struct dirent *readdir(DIR *dp); 返回值:若成功则返回指针,若在目录结尾或出错则返回NULL。


列出一个目录下所有文件的名字,简要实现unix下ls命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<stdio.h>
#include<dirent.h>
 
int  main( int  argc, char * agrv[]){
DIR* dp;
struct  dirent* dirp;
 
if (argc!=2){
   printf ( "usage:lsdirectory_name\n" );
   //不返回的话,程序会执行出错
   return  0;
}
if ((dp=opendir(agrv[1]))==NULL){
   printf ( "cannotopen%s" ,agrv[1]);
   //不返回的话,程序会执行出错
   return  0;
}
while ((dirp=readdir(dp))!=NULL){
   printf ( "%s\n" ,dirp->d_name);
}
closedir(dp);
//c语言以非0为真,所以程序执行成功的话返回1,执行失败返回0
return  1;
}

猜你喜欢

转载自blog.csdn.net/dyh19911008/article/details/79927977