#tTnrude #include #include #include #define AVANCER 256 #define STDOUT 1 #define STDERR 2 void erreur(ssize_t resultat, char* message){ if (resultat==-1){ printf("%s\n",message); perror(message); exit; } } int main(int argc, char** argv){ int descripteur1; int descripteur2; ssize_t echec; char tampon[AVANCER]; if (argc < 3){ echec = write(STDERR,"Mauvaise utilisation !\n",23); erreur(echec, "Affichage sur stderr"); return EXIT_FAILURE; } descripteur1 = open(argv[1], O_RDONLY); erreur((ssize_t) descripteur1, "Ouverture du fichier"); descripteur2 = open(argv[1], O_WRONLY); erreur((ssize_t) descripteur2, "Ouverture du fichier"); while (echec = read(descripteur1, tampon, AVANCER)>0){ echec = write(descripteur2,tampon,echec); erreur(echec,"Affichage dans le fichier"); } erreur(echec,"lectureFichier"); erreur(close(descripteur1),"fermeture du fichier"); erreur(close(descripteur2),"fermeture du fichier"); return EXIT_SUCCESS; }