程序4-7 递归降序遍历目录层次结构,并按文件类型计数
时间:2007-01-08 来源:carol79
该程序共涉及三个子函数:
myftw在主程序中只是给出了最初开始路径的参数和myfun作为另一个参数,并调用了dopath函数(该函数需要调用myfun函数);
myfun单纯地对各种类型文件进行统计,各种计数器都是静态变量,故结果是想要的累计和。该函数的第一个参数是一个字符串常量,故是按地址传递的参数。第二个参数是stat结构体,要根据该结构体的st_mode&S_IFMT来确定文件的类型(普通、块、字符、命名管道、符号链接、套接口)
dopath完成对目录的递归遍历。其中:
FTW_D 代表目录 对于能成功打开的这种目录先调用myfun计数后,再逐层打开其目录项表,并挨个对每个子目录进行层层递归。
FTW_DNR 代表不能读的目录,对于FTW_D的目录调用opendir时返回错误就归入此类。
FTW_NS 代表文件状态错误,对文件调用lstate函数返回错误归入此类。
FTW_F 代表非目录,调用宏S_ISDIR若为0,表示非目录则归入此类。然后由myfun根据t_mode&S_IFMT来确定文件的类型。
相关阅读 更多 +
排行榜 更多 +