如何推广我的网站,外贸圈的尖子生,杭州建筑人才网,智能家装表头文件#xff1a;#include ftw.h定义函数#xff1a;int ftw(const char *dir, int (*fn) (const *file, const struct stat *sb, int flag), int depth)函数说明#xff1a;ftw() 会从参数dir指定的 目录开始#xff0c;往下一层层地递归式遍历子 目录。ftw()…表头文件#include ftw.h定义函数int ftw(const char *dir, int (*fn) (const *file, const struct stat *sb, int flag), int depth)函数说明ftw() 会从参数dir指定的 目录开始往下一层层地递归式遍历子 目录。ftw()会传三个参数给fn(), 第一个参数*file指向当时所在的 目录路径第二个参数是*sb, 为stat结构指针第三个参数为旗标有下面几种可能值:FTW_F 一般文件FTW_D 目录FTW_DNR 不可读取的 目录此 目录以下将不被遍历FTW_SL 符号连接FTW_NS 无法取得stat结构数据有可能是 权限问题最后一个参数depth代表ftw在进行遍历 目录时同时打开的文件数。ftw()在遍历时每一层 目录至少需要一个文件描述词如果遍历时用完了depth所给予的限制数目整个遍历将因不断地关文件和开文件操作而显得缓慢.如果要结束ftw()的遍历fn()只需返回一非零值即可此值同时也会是ftw()的返回值。否则ftw()会试着走完所有的 目录然后返回0.返回值遍历中断则返回fn()函数的返回值全部遍历则返回0若有错误发生则返回-1.附加说明由于ftw()会动态配置 内存使用请使用正常方式fn函数返回非零值来中断遍历不要在fn函数中使用longjmp().示例#include sys/stat.h
#include unistd.h
#include ftw.h
#include stdio.hint fn(const char *file, const struct stat *sb, int flag)
{if(flag FTW_D) // 如果对象是目录printf(Directory:\t%s\n, file);//else// printf(File:\t\t%s\n, file);return 0;
}int main()
{ftw(/home/zcm/program/eclipse, fn, 5000);return 0;
}