BUT2/SCR/SCR1.2/TP11/Q1.c

40 lines
844 B
C
Raw Permalink Normal View History

2023-10-23 13:23:36 +02:00
#include <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){
perror(message);
exit;
}
}
int main(int argc, char** argv){
int descripteur;
ssize_t echec;
char tampon[AVANCER];
if (argc < 2){
echec = write(STDERR,"Mauvaise utilisation !\n",23);
erreur(echec, "Affichage sur stderr");
return EXIT_FAILURE;
}
descripteur = open(argv[1], O_RDONLY);
erreur((ssize_t) descripteur, "Ouverture du fichier");
while (echec = read(descripteur, tampon, AVANCER)>0){
echec = write(STDOUT,tampon,echec);
erreur(echec,"Affichage sur stdout");
}
erreur(echec,"lectureFichier");
erreur(close(descripteur),"fermeture du fichier");
return EXIT_SUCCESS;
}