免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1331 | 回复: 0
打印 上一主题 下一主题

[Linux] 关于readdir的程序不能得到预计效果 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-04 17:24 |只看该作者 |倒序浏览
本帖最后由 Sniper_Killer 于 2013-03-04 17:25 编辑

前提:
当前程序所在位置的上一级目录包括:day02_25 day02_26 day02_27 day02_28 day03_01 day03_04
以上均为目录
程序源码:
  1. #include "day.h"

  2. int main( int argc, char* argv[ ] )
  3. {
  4.     int iRet = 0;

  5.     if( argc != 2 )
  6.     {
  7.         printf( "one less\n" );
  8.         return -1;
  9.     }

  10.     iRet = mydir( argv[1] );
  11.     if( iRet == -1 )
  12.     {
  13.         printf( "Call dir function ERROR\n" );
  14.         return -1;
  15.     }

  16.     return 0;
  17. }
  18. int mydir( char* in )
  19. {
  20.     int iRet = 0;
  21.     DIR* dp = NULL;
  22.     struct dirent* psd = NULL;
  23.     struct stat ss;

  24.     memset( &ss, 0, sizeof( struct stat ) );

  25.     dp = opendir( in );
  26.     if( dp == NULL )
  27.     {
  28.         perror( "opendir" );
  29.         return -1;
  30.     }
  31.     rewinddir( dp );
  32.     while( ( psd = readdir( dp ) ) != NULL )
  33.     {
  34. /***
  35.         printf( "NAME : %s\n", psd->d_name );
  36. ***/
  37.         iRet = lstat( psd->d_name, &ss );
  38. /***
  39.         if( iRet == -1 )
  40.         {
  41.             perror( "lstat" );
  42.             return -1;
  43.         }
  44. ***/
  45.         if( S_ISDIR( ss.st_mode ) )
  46.         {
  47.             strcat( psd->d_name, "/" );
  48.         }
  49.         printf( "%s\n", psd->d_name );
  50.     }

  51.     return 0;
  52. }
复制代码
没添加注释编译连接之后:./a.out ..
出现的错误时这样的:
NAME : day02_28
lstat: No such file or directory
Call dir function ERROR

这是什么情况呢?没有错误判断,就是架上注释之后,结果是这样的:
day02_28
day02_26
day03_04
day03_01
../
./
day02_25/
day02_27/

请大家指教一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP