您的位置:首页 > 运维架构 > Linux

Linux c 目录操作函数scandir

2013-10-11 15:47 495 查看

Linux c 目录操作函数scandir

(2012-04-06 14:07:02)


转载▼

标签:

it

头文件

#include<dirent.h>   

函数定义:

int
scandir
(const char*dir,struct dirent **namelist,int (*filter)(const void*b),

int ( * compare )( const struct dirent **, const struct dirent ** ));

int alphasort(const void *a, const void *b);

int versionsort(const void *a, const void *b);

函数scandir扫描dir目录下以及dir子目录下满足filter过滤模式的文件,返回的结果是compare函数经过排序的,并保存在namelist中。注意namelist是通过malloc动态分配内存的,所以在使用时要注意释放内存。alphasort和versionsort是使用到的两种排序的函数。
  

当函数成功执行时返回找到匹配模式文件的个数,如果失败将返回-1。

eg:

#include <dirent.h>  

int main()  

{   

struct dirent **namelist;

  int n;

  n = scandir(".", &namelist, 0,alphasort);

  if (n < 0)  

 {   

perror("not found\n");

  }  

 else  

 {

  while(n--)

  {

  printf("%s\n",namelist
->d_name);

  free(namelist
);

  }

   free(namelist);

  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: