41 lines
1.0 KiB
C
41 lines
1.0 KiB
C
|
#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;
|
||
|
}
|