Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4842350
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: 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);
}

getcwd取得当前的工作目录

表头文件:#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;
}

阅读(1304) | 评论(2) | 转发(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