当前位置: 技术问答>linux和unix
循环执行readdir,只执行1次,求解,谢谢
来源: 互联网 发布时间:2016-11-30
本文导语: int main(int argc, char * argv[]) { struct stat buf; DIR *dp; struct dirent *pdir_info = NULL; int i=0; lstat(argv[1], &buf); if( S_ISDIR(buf.st_mode) ) { printf("%s Is...
int main(int argc, char * argv[])
{
struct stat buf;
DIR *dp;
struct dirent *pdir_info = NULL;
int i=0;
lstat(argv[1], &buf);
if( S_ISDIR(buf.st_mode) )
{
printf("%s Is a dirn",argv[1]);
}
dp = opendir(argv[1]);
if(dp==NULL)
{
printf("dp==NULL%dn");
exit(1);
}
while( (pdir_info=readdir(dp))!=NULL )
{
printf("i = %d: %sn",i,pdir_info->d_name);
exit(1);
}
perror(errno);
exit(0);
}
结果:
./ Is a dir
i = 0: .in.txt.swp
只循环了一次,无论如何至少应该输出 "." 和“..” 吧。
谢谢!
|
while( (pdir_info=readdir(dp))!=NULL )
{
printf("i = %d: %sn",i,pdir_info->d_name);
/* exit(1); */
}
|
while( (pdir_info=readdir(dp))!=NULL )
{
printf("i = %d: %sn",i,pdir_info->d_name);
exit(1);
}
while调用一次就退出了,
你可以把exit去掉或把exit换成continue就好了
{
printf("i = %d: %sn",i,pdir_info->d_name);
exit(1);
}
while调用一次就退出了,
你可以把exit去掉或把exit换成continue就好了