scandir函数详解

简介: scandir函数详解2009-10-30 10:51scandir函数:读取特定的目录数据表头文件:#include 定义函数:int scandir(const char *dir, struct dirent **namelist, nt (*select) (const struct dir...

scandir函数详解
2009-10-30 10:51
scandir函数:读取特定的目录数据
表头文件:#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 核心内存不足
Example
#include <dirent.h>
main()
{
    struct dirent **namelist;
    int n;
    n = scandir(".", &namelist, 0, alphasort);
    if (n < 0)
        perror("scandir");
    else
    {
        while(n--)
        {
            printf("%s\n", namelist[n]->d_name);
            free(namelist[n]);
        }
        free(namelist);
    }
}

转自:http://blog.sina.com.cn/s/blog_6a113b0a0100uzb3.html

目录
相关文章
|
8月前
MQTTClient_setCallbacks()函数
MQTTClient_setCallbacks()
485 0
|
9月前
|
前端开发
纯函数
纯函数
52 0
|
10月前
|
程序员 C语言
函数(1)
函数(1)
|
10月前
|
算法 编译器
函数(2)
函数(2)
|
自然语言处理 C++
C/C++ 中的 atol()、atoll() 和 atof() 函数
1.atol(): 此函数将作为参数传递给函数调用的 C 类型字符串转换为长整数。它解析 C 字符串 str 并将其内容解释为整数,该整数作为 long int 类型的值返回。该函数会丢弃字符串开头的空白字符,直到找到非空白字符。如果 C 字符串 str 中的非空白字符序列不是有效的整数,或者如果因为 str 为空或仅包含空白字符而不存在这样的序列,则不执行任何转换并返回零。
148 0
|
Java vr&ar
函数那些题 — P1
函数那些题 — P1
函数那些题 — P1
|
编译器
【C++Primer】第6章:函数
【C++Primer】第6章:函数
【C++Primer】第6章:函数
函数(二)
今天我们来学习函数(二)的相关内容,视频我已经传到b站上了,现在把链接发给大家,大家可以在b站上观看。关于函数我在为大家补充变量作用域的知识点。它分为两个部分:1.局部变量 2.全局变量
81 0
函数(二)
|
Python
函数
函数
76 0
|
数据安全/隐私保护
十、详解函数柯里【上】
柯里化是函数的一个高级应用,想要理解它并不简单。因此我一直在思考应该如何更加表达才能让大家理解起来更加容易。 通过上一个章节的学习我们知道,接收函数作为参数的函数,都可以叫做高阶函数。我们常常利用高阶函数来封装一些公共的逻辑。 这一章我们要学习的柯里化,其实就是高阶函数的一种特殊用法。
139 0