Sniper_Killer 发表于 2013-03-04 17:24

关于readdir的程序不能得到预计效果

本帖最后由 Sniper_Killer 于 2013-03-04 17:25 编辑

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

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

    if( argc != 2 )
    {
      printf( "one less\n" );
      return -1;
    }

    iRet = mydir( argv );
    if( iRet == -1 )
    {
      printf( "Call dir function ERROR\n" );
      return -1;
    }

    return 0;
}
int mydir( char* in )
{
    int iRet = 0;
    DIR* dp = NULL;
    struct dirent* psd = NULL;
    struct stat ss;

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

    dp = opendir( in );
    if( dp == NULL )
    {
      perror( "opendir" );
      return -1;
    }
    rewinddir( dp );
    while( ( psd = readdir( dp ) ) != NULL )
    {
/***
      printf( "NAME : %s\n", psd->d_name );
***/
      iRet = lstat( psd->d_name, &ss );
/***
      if( iRet == -1 )
      {
            perror( "lstat" );
            return -1;
      }
***/
      if( S_ISDIR( ss.st_mode ) )
      {
            strcat( psd->d_name, "/" );
      }
      printf( "%s\n", psd->d_name );
    }

    return 0;
}
没添加注释编译连接之后:./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/

请大家指教一下!
页: [1]
查看完整版本: 关于readdir的程序不能得到预计效果