He compilado este código que implementa una función para copiar archivos, pero no me funcióna y ya me estoy volviendo loco y no le veo el fallo. A ver si me podeís echar un cable alguno.
Un saludo.
CODIGO::
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
int copiaf(char *f1, char* f2){
int fd_leer;
int fd_escribir;
ssize_t leido;
ssize_t escrito;
char bufi[20];
if(fd_leer = open(f1,O_RDONLY)< 0){
perror ("Error en Lectura:");
exit (-1);
}
if(fd_escribir = open(f2,O_WRONLY|O_TRUNC|O_CREAT,666) < 0){
perror("Error en Escritura:");
exit (-1);
}
////////////
// LECTURA y ESCRITURA
////////////
while (leido = read(fd_leer,bufi,sizeof bufi)>0)
{
printf ("Leidos: %d bytes\n",leido);
escrito = write(fd_escribir,bufi,sizeof bufi);
}
if (leido == 0) {
printf("Fin del Fichero");
close(fd_leer);
close(fd_escribir);
exit (-1);
}
else if (leido < 0){
perror("Lectura:");
}
}
int main(int argc, char **argv) {
int resultado;
if (argc != 3){
printf ("Usar: %s origen destino\n\n",argv[0]);
exit (-1);
}
if ((resultado= copiaf (argv[1], argv[2]))<0);
printf ("Error en la copia");
return 0;
}