关于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]