|
¤Ï¤¸¤á¤Þ¤·¤Æ ¤¨¤¤¤³¤Ç¤¹¡£
´Ä¶¤ÏWindows XP, Borland C++ Compiler
5.5¤Ç¤¹¡£
½é¿´¼Ô¤Ç¤¹¡£¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£
¡¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄê
¢»ØÄê¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¿ô¤òÄ´¤Ù¤ë
£ÇÛÎó¡Ê¥Õ¥¡¥¤¥ë̾¤òÊݸ¤¹¤ë¤¿¤á¤ÎÇÛÎó¡Ë¤ÎÎΰè¤ò³ÎÊݤ¹¤ë
¤¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤òÇÛÎó¤Ë¼èÆÀ¤¹¤ë
¤È¤¤¤¦ºî¶È¤ò¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢
°ìÅ٥ǥ£¥ì¥¯¥È¥ê¤ÎºÇ¸å¤Þ¤Ç»Ø¤·¤¿¥Ý¥¤¥ó¥¿¤ò
ÀèÆ¬¤ËÌ᤹¤Ë¤Ï¤É¤¦¤·¤¿¤é¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©¡Ê¡ú¡ú¡ú¤ÎÉôʬ¡Ë
¡Êrewind¤ò»ÈÍѤ¹¤ë¤È¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¡Ë
#include <stdio.h>
#include <dirent.h>
int main(argc,argv)
int argc;
char *argv[];
{
DIR *dir;
struct dirent *dp;
char path[257];/*»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê̾¤òÆþ¤ì¤ë*/
int f_count = 0;/*¥Õ¥¡¥¤¥ë¿ô¥«¥¦¥ó¥ÈÍÑ*/
char (*f)[33];/*¥Õ¥¡¥¤¥ë̾¤òÊݸ¤¹¤ëÇÛÎó*/
int i;/*¢¬¤ÎÇÛÎó¤Îꤍ»úÍÑ*/
if(argc!=2){
printf("¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎÆþÎÏ·Á¼°¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹\n");
printf("test_readdir02 ÆþÎÏ¥Õ¥¡¥¤¥ë̾\n");
exit(-1);
}else{
/*¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤è¤ê¥Ç¥£¥ì¥¯¥È¥ê̾¤ò»ØÄê*/
strcpy(path,argv[1]);
}
/*¥Ç¥£¥ì¥¯¥È¥ê¤ò³«¤¯*/
if((dir=opendir(path))==NULL){
perror("opendir");
exit(-1);
}
/*¥Õ¥¡¥¤¥ë¿ô¤ò¥«¥¦¥ó¥È¤¹¤ë*/
while ((readdir(dir)) != NULL) {
f_count++;
}
printf("f_count=%d\n",f_count);
/*¡ú¡ú¡ú¤³¤³¤Ç¥Ý¥¤¥ó¥¿¤òÀèÆ¬¤ËÌᤷ¤¿¤¤¡ú¡ú¡ú*/
/*¥Õ¥¡¥¤¥ë̾¤òÆþ¤ì¤ëÇÛÎó¤ò³ÎÊݤ¹¤ë*/
f = (char (*)[33])malloc((f_count-2) * 33);
/*¥Õ¥¡¥¤¥ë̾¤òÇÛÎó¤Ë¥³¥Ô¡¼¤¹¤ë*/
i=0;
for(dp=readdir(dir);dp!=NULL;dp=readdir(dir)){
strcpy(f[i], dp->d_name);
printf("%s\n",f[i]);
i++;
}
closedir(dir);
/*µ²±°è¤ò³«Êü*/
free(f);
return;
}
|