#include<stdio.h>#include<dirent.h>int main(){ DIR *dirpt=NULL; struct dirent *entry=NULL; printf("test\n"); dirpt=opendir("/home/mrhuang/Desktop/mrhuang/recieved"); printf("test\n"); if(dirpt==NULL) { printf("open dir error!\n"); return 1; } else { printf("test\n"); while(entry=readdir(dirpt)); { printf("test\n"); printf("%g\n",entry); printf("%s\n",entry->d_name); printf("test1\n"); } closedir(dirpt); } return 0;}
不说你了。 while(entry=readdir(dirpt));这行后面有个分号发现没,给我去掉。这行就是个空语句。占位用的。可以这么理解while(entry=readdir(dirpt)) 这里啥都不干;下面那一行的entry 就成 NULL了,他没有d_name,所以段错误