CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

我的程序到底哪里出错了?如何递归才对

楼主QWY2000(冷剑白狐2000)2003-02-02 10:00:57 在 C/C++ / C语言 提问

/*在指定目录及其子目录里查找指定文件,把全部列出,用c语言实现,在linux里通过*/  
  #include   <dirent.h>  
  #include   <stdio.h>  
  #include   <stdlib.h>  
     
  void   find(char   *dirname,char   *filename)  
  {  
        DIR   *dir;  
        struct   dirent   *ent;  
        char   *tmpbuf=(char*)malloc(0x100);  
        char   *cwd_temp,*name_temp;  
        int   i,j;  
     
        printf("First   pass   on   '%s':\n",dirname);  
        if   ((dir   =   opendir(dirname))   ==   NULL)  
        {  
            perror("Unable   to   open   directory");  
            exit(0);  
        }  
           
          printf("%s\n",getcwd(NULL,128));  
           
          while   ((ent   =   readdir(dir))   !=   NULL)  
                                                  printf("\t%s",ent->d_name);  
          printf("\n");  
          printf("Second   pass   on   '%s':\n",dirname);  
   
        rewinddir(dir);    
        while   ((ent   =   readdir(dir))   !=   NULL)  
        {      
              if(strcmp(filename,ent->d_name)==0)  
              {     printf("%s",getcwd(NULL,128));  
                    printf("/%s\n",ent->d_name);  
                /*     break;*/  
              }  
            /**************************************************************/  
              getcwd(cwd_temp,128);  
              strcpy(name_temp,ent->d_name);  
              if(name_temp!="."&&name_temp!="..")  
              {  
               
                for(i=0;i<=strlen(cwd_temp)-2;i++)    
                      tmpbuf[i]=cwd_temp[i];  
                tmpbuf[i]="\\";  
                i++;  
                for(j=0;j<=strlen(name_temp)-1;j++)  
      tmpbuf[i+j]=name_temp[j];  
                find(tmpbuf,filename);          
              }  
          /***************************************************************/  
                             
        }  
        if   (closedir(dir)   !=   0)  
            perror("Unable   to   close   directory");  
        return;  
  }  
     
  int   main(int   argc,char   *argv[])  
  {  
        if   (argc   !=   3)  
        {  
            printf("usage:   opendir   dirname\n");  
            exit(1);  
        }  
        find(argv[1],argv[2]);  
        exit(0);  
  }  
   
  问题点数:0、回复次数:2Top

1 楼ww2003(参数1编程,参数2健身,参数3美女)回复于 2003-02-07 12:39:31 得分 0

你能把dirent.h给出来吗?Top

2 楼QWY2000(冷剑白狐2000)回复于 2003-02-07 17:25:32 得分 0

c语言自带的啊  
  你的没有吗  
  linux里也是自带了啊Top

相关问题

  • 递归执行出错
  • 递归程序的非递归化
  • help!一个递归程序
  • 程序出错!!!
  • 程序出错
  • 程序出错
  • 怎样理解递归程序最好
  • 用递归如何写下面程序
  • 请教一个递归小程序
  • 请教递归程序问题

关键词

  • null
  • ent
  • getcwd
  • dirname
  • dir
  • printf
  • temp
  • include
  • char

得分解答快速导航

  • 帖主:QWY2000

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo