#include #include #include #include #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"); }