Ragazzi come mai nessuna riposta?

Cmq ho da porvi questo problema:

codice:
//ESERCIZIO:
//Scrivere da standard input

//Copiare il contenuto del primo file anche nel secondo, ma in maniera inversa





#include  <sys/types.h>

#include  <sys/stat.h>

#include   <fcntl.h>

#include   <unistd.h>

#include   <stdio.h>





int main()

{

int fd1,fd2,buf[90],n,c;

if((fd1=open("INIZIO.txt", O_CREAT | O_RDWR | O_TRUNC, 0644)) < 0)
   printf("Si è verificato un errore alla prima open");
if((fd2=open("FINE.txt", O_CREAT | O_RDWR | O_TRUNC, 0644)) <0)
   printf("Si è verificato un errore alla seconda open");

n=read(STDIN_FILENO,buf,90);  //leggo da Standard Input
write(fd1,buf,n);      //scrivo sul primo file
n=lseek(fd1,0,SEEK_END); //mi posiziono alla fine del file

while(n>=0){
 read(fd1,&c,1); //leggo un carattere dal file INIZIO.txt
 write(fd2,&c,1); //scrivo un carattere su file FINE.txt
 n=lseek(fd1,-1,SEEK_CUR);
}

close(fd1);
close(fd2);

exit(0);

}
In questo esercizio scrivo in ORIGINE.txt e poi quello scritto in esso lo copio in maniera inversa su FINE.txt. Ora siccome non mi è chiaro l'uso di lseek probabile che ho sbagliato qualcosa nei parametri. Mi date una mano, perfavore?