词条 | scandir |
释义 | #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\"); } else { while(n--) { printf("%s\", namelist[n]->d_name); free(namelist[n]); } free(namelist); } } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。