会编程的大白熊

专长: 超过10年的PYTHON开发经验, 精通PHP,AngularJS, 大数据分析和架构设计...

scandir读取特定的目录数据

转载请保留: http://www.cnscn.org(CNS电脑与英语学习网)
相关函数:opendir, readdir, alphasort
表头文件:#include  <dirent.h>
定义函数:int  scandir(const char *dir, struct dirent **namelist, nt (*select)  (const  struct  dirent *), nt (*compar)  (const struct dirent **, const struct dirent**));
函数说明:scandir()会扫描参数dir指定的目录文件,经由参数select指定的函数来挑选目录结构至参数namelist数组中,最后再调用参数compar指定的函数来排序namelist数组中的目录数据。每次从目录文件中读取一个目录结构后便将此结构传给参数select所指的函数, select函数若不想要将此目录结构复制到namelist数组就返回0,若select为空指针则代表选择所有的目录结构。scandir()会调用qsort()来排序数据,参数compar则为qsort()的参数,若是要排列目录名称字母则可使用alphasort(). 结构dirent定义请参考readdir()
返回值  :成功则返回复制到namelist数组中的数据结构数目,有错误发生则返回-1
错误代码:ENOMEM 核心内存不足

/* 读取 / 目录下文件名长度大于5的目录结构 */
#include <dirent.h>

int  select(const  struct  dirent *dir)
{
    if(strlen(dir->d_name) > 5)
         return 1;
    else
         return 0;
}

main()
{
    struct  dirent  **namelist;
    int i, total;
    if(total < 0)
          perror("scandir");
    else
    {
           for(i=0; i<total; i++)
                 printf("%s/n", namelist->d_name);
           printf("total = %d/n", total);
    }
}
 
阅读更多
文章标签: struct 数据结构
个人分类: Gcc
上一篇Windows XP不能打开.chm格式的文件的解决方法汇总
下一篇gethostbyaddr由IP地址取得网络数据
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭