通过一个简单的ls程序,完成读目录内容的编程,了解基本的读目录读的基本步骤:
#include <stddef.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
int main(void)
{
DIR *dp;
struct dirent *ep;
struct stat st;
char dirp[50];
printf("Please input a dir name:/n");
scanf("%s",&dirp);
dp=opendir(dirp);
printf("filename:/ttype:/tPermission/taccesstime/tlastmdtime/tsize/t/n");
if(dp!=NULL)
{
while(ep=readdir(dp))
{
if(ep->d_name[0]!='.')
{
if((ep->d_name,&st)!=NULL)
{
printf("%s/t",ep->d_name);
if((st.st_mode&S_IFMT)==S_IFDIR)
printf("Directory/t");
else if((st.st_mode&S_IFMT)==S_IFBLK)
printf("Block special file/t");
else if((st.st_mode&S_IFMT)==S_IFCHR)
printf("charaacter special file/t");
else if((st.st_mode&S_IFMT)==S_IFREG)
printf("Ordinary file/t");
else if((st.st_mode&S_IFMT)==S_IFIFO)
printf("pipefile file/t");
printf("%ot",st.st_mode&0x1ff);
printf("%15s/t",ctime(&st.st_atime));
printf("%15s/t",ctime(&st.st_mtime));
printf("%ld/t/n",st.st_size);
}
}
}
closedir(dp);
}
else
puts("/nCoundn't open the directory./n");
return 0;
}