| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:请教大家一段程序
只看楼主 加入收藏
都都
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-7-3
收藏
 问题点数:0 回复次数:2 
请教大家一段程序
void ReadDirectories(char *root, int level)
{
DIR *dir;

//printf("Directory '%s' ", root);
dir = opendir(root);
if(dir) {
struct dirent *dep;

while((dep = readdir(dir)) != NULL) {
int i;

if (strcmp(dep->d_name, ".") && strcmp(dep->d_name, "..")) //这里的if语句有什么作用, strcmp()函数是用来比较两个字符串的,可
{                                                                             //可是这里的"."和".."是什么意思呢
for (i = 0; i < level; i++) {
printf(" ");
}
printf("%c %s ", dep->d_type ? 'd' : '-', dep->d_name);
if (dep->d_type) {
char *sub = malloc(strlen(root) + strlen(dep->d_name) + 2); //为什么这里要用到heap,我对heap的了解还很肤浅,请大家帮助
strcpy(sub, root);                                          
strcat(sub, dep->d_name);
strcat(sub, "/");
ReadDirectories(sub, level + 1);
free(sub);
}
}
}
closedir(dir);
}
}
搜索更多相关主题的帖子: 字符串 
2008-10-15 15:04
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
"."和".."就是两个字符串,
在dos下,
"."表示当前目录(好像是,这个我不太确定),
".."表示上一层目录

malloc就是申请一段空间给我们用,用这个的好处是我们可以在运行程序的时候,动态的申请空间,需要多大就申请多大的空间,避免浪费

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-10-15 15:21
tteet
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2008-10-14
收藏
得分:0 
[bo][un]永夜的极光[/un] 在 2008-10-15 15:21 的发言:[/bo]

"."和".."就是两个字符串,
在dos下,
"."表示当前目录(好像是,这个我不太确定),
".."表示上一层目录

malloc就是申请一段空间给我们用,用这个的好处是我们可以在运行程序的时候,动态的申请空间,需要多大就申请多 ...

更重要的是避免冲突和泄露之类的问题吧。
2008-10-15 21:37
快速回复:请教大家一段程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023415 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved