#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define STDIN 0
#define STDOUT 1
int main (int argc, char* argv[]) {
int fd, ofile;
char *buffer;
ssize_t lu, ecrit;
struct stat s;
if (argc!=3) {
printf("Usage: %s source cible\n",argv[0]);
exit(0);
}
if ((fd=open(argv[1],O_RDONLY))==-1)
{
perror("Erreur lors de l'ouverture du fichier");
exit(1);
}
ofile=creat(argv[2], 0760);
if (ofile==-1) {
perror("Erreur lors de la creation du fichier");
exit(2);
}
buffer=(char*)malloc(sizeof(char)*256);
if (buffer==NULL) {
perror("Erreur d'allocation memoire");
exit(3);
}
do {
lu=read(fd, buffer, 256);
if (lu>0)
ecrit=write(ofile, buffer, lu);
if (ecrit<0) {
perror("erreur lors de l'ecriture dans le fichier");
exit(4);
}
}
while (lu>0);
free(buffer);
if (lu==-1) {
perror("Erreur de lecture");
exit(3);
}
close(fd);
close(ofile);
printf("Copie terminee");
}