全部博文(930)
分类: LINUX
2010-04-19 20:44:51
ftw遍历目录树
表头文件:#include
定义函数: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().
示例:
/*列出/etc/X11
下的子
*/
#include
#include
#include
int fn(const char *file, const struct stat *sb, int flag)
{
if(flag == FTW_D)
printf("%s --- directory\n", file);
else
printf("%s \n",file);
return 0;
}
int main()
{
ftw("/etc/X11",fn,500);
}
表头文件:#include
定义函数:char *getcwd(char *buf, size_t size)
函数说明:getcwd()会将当前的工作
绝对路径复制到参数buf所指的
,参数size为buf的
大小。在调用此函数时,buf所指的
要足够大,工作
绝对路径的字符串长度超过参数size大小,则返回NULL,errno的值则为ERANGE。倘若参数buf为NULL, getcwd()会依参数size的大小自动配置
(使用malloc()),如果参数size也为0,则getcwd()会依工作
绝对路径的字符串长度来决定所配置的
大小,进程可以在使用完此字符串后利用free()来释放此
.
返回值:执行成功则将结果复制到参数buf所指的
,或是返回自动配置的字符串指针。失败返回NULL,错误代码存于errno.
#include
int main()
{
char buf[80];
getcwd(buf, sizeof(buf));
printf("current working directory : %s\n ",buf);
return 0;
}
chinaunix网友2010-06-01 06:29:32
MBT is based on Africa's indigenous people to create innovative walking barefoot, and wear this shoe can stimulate the body to relax the muscles so that the muscles of heat to be released, consumed calories, thus to achieve weight loss results. MBT's pursuit of beauty in order to satisfy customers, design a variety of styles, such as Mbt Chapa shoe, MBT Lami Shoe
chinaunix网友2010-06-01 06:29:18
MBT is based on Africa's indigenous people to create innovative walking barefoot, and wear this shoe can stimulate the body to relax the muscles so that the muscles of heat to be released, consumed calories, thus to achieve weight loss results. MBT's pursuit of beauty in order to satisfy customers, design a variety of styles, such as Mbt Chapa shoe, MBT Lami Shoe