使用readdir来将目录中的链接文件显示出来,并写入到一个文件内部,再将文件中的内容显示到屏幕上。
#include<stdio.h>
#include<sys/types.h>
#include<dirent.h>
int main(int argc, const char *argv[])
{
DIR *dp=NULL;
struct dirent *dt=NULL;
FILE *fd;
dp=opendir(argv[1]);
if(NULL==dp)
{
perror("Fail to opendir");
return -1;
}
fd=fopen(argv[2],"w+");
if(fd==NULL)
{
perror("Fail to fopen");
return -1;
}
while(1)
{
dt =readdir(dp);
if(dt==NULL)
break;
if(dt->d_type==DT_LNK)
{
printf("%s\n",dt->d_name);
fputs(dt->d_name,fd);
fprintf(fd,"\n");
}
}
printf("\n");
fgets(buf,sizeof(buf),fd);
char ch;
fseek(fd,0,SEEK_SET);
while(EOF != fscanf(fd,"%c",&ch))
{
printf("%c",ch);
ch = 0;
}
if (closedir(dp) < 0)
{
perror("Fail to closedir");
return -1;
}
fclose(fd);
return 0;
}