zoukankan      html  css  js  c++  java
  • oendir(),readdir(),closedir() 打开/读取/关闭目录

    目录操作

    当目标是目录而不是文件的时候,ls -l的结果会显示目录下所有子条目的信息,怎么去遍历整个目录呢?答案马上揭晓!

    1. 打开目录

    功能:opendir()用来打开参数name指定的目录,并返回DIR *形态的目录流

    需要包含的头文件:<sys/types.h>,<dirent.h>

    函数原型:

      DIR * opendir(const char * name);

    参数:

      name:要打开的目录完全路径名

    返回值:

      成功返回目录流;  失败返回NULL


    2. 读取目录

    功能:readdir()返回参数dir目录流的下一个子条目(子目录或子文件)

    函数原型:

      struct dirent * readdir(DIR * dir);

    参数:

      dir:目录流

    返回值:

      成功返回结构体指向的指针,错误或以读完目录,返回NULL 

    函数执行成功返回的结构体原型如下:

    1 struct dirent {
    2    ino_t   d_ino;
    3    off_t   d_off;
    4    unsigned short  d_reclen;
    5    unsigned char   d_type;
    6    char    d_name[256];
    7 };

    其中 d_name字段,是存放子条目的名称


    3. 关闭目录

    功能:closedir()关闭dir所指的目录流

    函数原型:

      int closedir(DIR * dir);

    参数:

      dir:目录流

    返回值:

      成功返回0;失败返回-1,错误原因在errno中


    综合的例子:

     1 #include 
     2 #include 
     3 #include 
     4 int main(int argc, char *argv[])
     5 {
     6     DIR *dp;
     7     struct dirent *entp;
     8     if (argc != 2) {
     9         printf("usage: showdir dirname
    ");
    10         exit(0);
    11     }
    12     if ((dp = opendir(argv[1])) == NULL) {
    13         perror("opendir");
    14         exit(-1);
    15     }
    16     while ((entp = readdir(dp)) != NULL)
    17         printf("%s
    ", entp->d_name);
    18 
    19     closedir(dp);
    20     return 0;
    21 }
  • 相关阅读:
    网页安装ipa
    windows开通https服务
    Asp.Net上传大文件带进度条swfupload
    Asp.Net采集网页方法大全(5种)
    asp.net上传大文件-请求筛选模块被配置为拒绝超过请求内容长度的请求
    在IIS服务器上屏蔽IP的访问
    网络广告CPS/CPC/CPV/CPM/CPA分别是什么意思
    Asp.Net判断字符是否为汉字的方法大全
    Asp.Net使用代理IP远程获取数据
    Asp.Net保存session的三种方法
  • 原文地址:https://www.cnblogs.com/chen-farsight/p/6024127.html
Copyright © 2011-2022 走看看