1、目录访问相关函数:

  DIR* opendir (const char * path );
  struct dirent* readdir(DIR *dirptr) ;参数是一个指向dirent 结构的指针。DIR是目录指针,读取一个目录,读取完毕返回一个空指针。
  int closedir(DIR *dirptr);

2、目录信息结构体如下所示:

struct dirent
{
    long d_ino;  //inode number  i结点号码
    off_t d_off; //偏移(当前文件在目录中的偏移位置)
    unsigned short d_reclen; //文件名称的长度
    char d_name[NAME_MAX+1]; //filename 文件名称
}
示例:实现一个小型ls简单程序:

 1 #include <sys/types.h>
2 #include <sys/stat.h>
3 #include <fcntl.h>
4 #include<errno.h>
5 #include<unistd.h>
6 #include<stdio.h>
7 #include<stdlib.h>
8 #include<string.h>
9 #include<dirent.h>
10 //#define ERR_EXIT(m) (perror(m),exit(EXIT_FAILURE))
11 #define ERR_EXIT(m)\
12 do\
13 {\
14 perror(m);\
15 exit(EXIT_FAILURE);\
16 }while(0) //宏要求一条语句
17 int main(void)
18 {
19 DIR *dir;
20 //opendir()打开一个路径
21 if((dir=opendir("."))==NULL)//打开当前目录
22 ERR_EXIT("opendir error");
23 struct dirent *de;
24 while((de=readdir(dir))!=NULL)
25 {
26 if(strncmp(de->d_name,".",1)==0) //隐藏文件.和.. 第一个字符是点号隐藏
27 continue;
28 printf("%s\n",de->d_name);
29 }
30 closedir(dir);
31 exit(EXIT_SUCCESS);
32 return 0;
33 }

最新文章

  1. jQuery图片旋转展示收缩效果
  2. iOS自动布局进阶用法
  3. C#调用C++ DLL类方法
  4. SharpGL学习笔记(十五) 纹理映射
  5. emmet中文文档 (转载)
  6. json不支持中文写入的问题解决
  7. C# MVC提交表单的四种方式(转)
  8. fackbook的Fresco (FaceBook推出的Android图片加载库-Fresco)
  9. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)
  10. 解决在 使用 AjaxFileUploder 插件时,不能获取返回的 json 结果数据
  11. Debian 7 64位安装 wine
  12. WPF控件---Border应用
  13. Apache Kafka - 介绍
  14. 【BZOJ2127】happiness
  15. Dell Inspiron 620 / Vostro 260 BIOS 开启 AHCI 模式
  16. Android测试环境搭建
  17. Linux 小知识翻译 - 「Linux」怎么读?
  18. ASP.NET MVC5 高级编程-学习日记-第一章 入门
  19. 第二个Sprint冲刺第六天(燃尽图)补
  20. 20155320 实验二 Java面向对象程序设计

热门文章

  1. docker registry 记录
  2. lumen-ioc容器测试 (3)
  3. centos8安装fastdfs6.06集群方式一之:软件下载与安装
  4. gin教程
  5. js 实现 input file 文件上传
  6. 第十七章 nginx动静分离和rewrite重写
  7. Cypress系列(68)- request() 命令详解
  8. C#文件反序列化
  9. 出Bug表-假如诸葛亮是程序员(1024程序员节日献礼)
  10. 重要,知识点:InnoDB的插入缓冲