#include <stdio.h>
#include <string.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
DIR *dp;
int o = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0666);
dp = opendir(argv[1]);
struct dirent *dt = NULL;
int n;
while(1){
dt = readdir(dp);
if(NULL == dt)
break;
if(dt->d_type == DT_LNK){
printf("%s\n",dt->d_name);
write(o,dt->d_name,strlen(dt->d_name));
write(o,"\n",1);
}
}
lseek(o,0,SEEK_SET);
char buf[1];
int rn = 0;
while(1){
rn = read(o,buf,1);
if(rn <= 0)
break;
write(STDOUT_FILENO,buf,1);
}
closedir(dp);
close(o);
return 0;
}