ftw遍历目录树 getcwd取得当前的工作目录
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;
}
原文地址 http://www.cnscn.org
ftw遍历目录树 getcwd取得当前的工作目录相关推荐
- oracle 生成目录树,jQuery zTree插件快速实现目录树
ztree是JQuery的一个开源树形目录的插件,用来快速构建网站的树形目录结构,并且提供了功能丰富,利于扩展的API. JQuery ztree官网 只要引入jquery和ztree的库js,然后给 ...
- python工作目录是什么意思_Docker的工作目录是什么意思?
你知道Linux下面的pwd命令么?用来显示当前路径的绝对地址的那个. 如果你知道它的全拼,你就不会有这个问题了. pwd的全拼是"print working directory" ...
- php getcwd文件件,PHP目录函数 getcwd (取得当前工作目录)
在PHP中,目录函数 getcwd() 用于取得当前工作目录. 函数语法:string getcwd ( ) getcwd() 函数用于取得当前工作目录,成功则返回当前工作目录,失败返回 false. ...
- java7 文件_Java SE 7新特性之文件操作(9) - 遍历目录树
在有些时候,我们可能需要遍历整个目录树,例如需要寻找所有的.java文件.Java SE 7提供了很方便的方法来实现这类的功能. Java SE 7提供的实现这类功能的方法就是FileVisitor接 ...
- C#表达式目录树系列之5 –动态创建查询表达式
概要 在项目开发中,根据用户的需求,一般来是,我们的查询表达式是固定的,新的查询需求都要通过代码的修改来实现.而对于不确定的查询条件,固定查询表达式的方式显然是行不通的. 针对固定查询表达式存在的问题 ...
- tree命令详解(输出目录树层结构,显示目录和文件)
你也想要生成这个目录树层结构吗?显示目录和文件吗?只需要用"tree命令"即可! 效果如下: . ├── README.md ├── auto-imports.d.ts ├── c ...
- Hadoop_NameNode_代码分析_目录树(2)
(1)NameNode的内存中保存了庞大的目录树结构,这个结构用来保存文件目录结构和文件Block之间的映射,这种结构关系会固化在磁盘上,但是对树的改动频繁发生,什么时候将树写入磁盘呢?把每次操作应用 ...
- Linux下的tree命令 --Linux下目录树查看
Linux下的tree命令 --Linux下目录树查看 有时我们需要生成目录树结构,可以使用的有ls -R,但是实际效果并不好 这时需要用到tree命令,但是大部分Linux系统是默认不安装该命令的, ...
- java查找目录文件函数_java 实现 文件操作工具集。包括文件、目录树的拷贝、删除、移动、查找等工具函数...
import java.io.*; /** * 文件操作工具集.包括文件.目录树的拷贝.删除.移动.查找等工具函数. * @author InternetTeam3 * @version 1.0 */ ...
- C#学习基本概念---xcopy(复制文件和目录树)
XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件:使用时源盘符.源目标路径名.源文件名至少指定一个:选用/S时对源目录下及其子目录下的所有文件进行COPY.除非 ...
最新文章
- 武汉网络推广介绍如何通过简化标题来提升主关键词排名?
- Cocos2D粒子发射器的纹理
- 【Android基础】Android Toast显示消息的几种方法
- 怎么撤销定时说说_已注册商标遇到撤三申请怎么办
- 即时通讯学习笔记002---xmpp基本概念
- redis配置文件redis.conf详细说明
- 回文问题
- Grid++Report——打印功能
- array(numpy) 的size 和Image(PIL) 的shape比较
- vs.net已经检测到制定的WEB服务器运行的不是ASP.NET1.1版,你无法运行ASP.NET WEB应用程序或服务...
- Java基础面试题(持续更新)
- 关于S参数的一些理解
- tds与oracle,oracle和sqlserver找不到字段的错误
- 在docker容器中创建用户组和用户,并且多用户共用一个anaconda环境
- 雅可比(Jacobi)计算特征值和特征向量
- Apache CXF框架简介
- 网站seo优化推广方式有哪些?如何提高网站排名?
- 国庆三亚自由行(Part 2 第二日之阳光沙滩美女烧烤)
- PDF格式转换为WORD格式
- 转载 科大讯飞jh再裁员 员工称公司管理混乱、产品质量差