BUT2/SCR/SCR1.2/TP11/Q2.c~

41 lines
1.0 KiB
C
Raw Normal View History

2023-10-23 13:23:36 +02:00
#tTnrude <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#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;
}