关于opendir,跪求达人。。

nanbazhangbiao 2011-09-05 08:04:03
void do_all_dir(char *path)
{
DIR *dir;
char fullpath[1024],currfile[1024];
struct dirent *s_dir;
struct stat file_stat;
memset(fullpath,0,1024);
memset(currfile,0,1024);
strcpy(fullpath,path);
fullpath[1023]='\0';
dir=opendir(fullpath);//此处错误。。。
while ((s_dir=readdir(dir))!=NULL) {
if ((strcmp(s_dir-> d_name, ".")==0)||(strcmp(s_dir-> d_name, "..")==0)) continue;
sprintf(currfile, "%s/%s",fullpath,s_dir-> d_name);

int r= lstat(currfile,&file_stat);
if (S_ISDIR(file_stat.st_mode))
do_all_dir(currfile);
else
if(compstat(currfile)==1){
mail_uncompress(currfile,src,dest);
}
}

closedir(dir);
}

上面的函数用来遍历文件夹并做相应的操作。。
这个函数是放到一个循环里面的。
但是每次当第二次调用的时候,那个opendir就会出现错误。但是参数又是正确的。。
况且第一滴调用也是正确的。。
求达人指出错误在哪儿?
...全文
82 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanbazhangbiao 2011-09-06
  • 打赏
  • 举报
回复
自己顶啊
nanbazhangbiao 2011-09-05
  • 打赏
  • 举报
回复
两次传进去的值一模一样。。我单步多次了。。
执行到那一步。。直接进程挂掉了!郁闷死了
jackyjkchen 2011-09-05
  • 打赏
  • 举报
回复
这个你得单步跟进去,看看出错的返回值和传进去的字符串

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧