Advertisement
Superloup10

FileReader.c

Oct 16th, 2017
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.26 KB | None | 0 0
  1. /* Liste des headers nécessaires au FileReader.c */
  2. #include <sys/types.h>
  3. #include <sys/stat.h>
  4. #include <fcntl.h>
  5. #include <unistd.h>
  6. #include <stdio.h>
  7.  
  8. /*
  9.  * Cette fonction permet de retourner 1 si une erreur est rencontrée et 0 sinon.
  10.  */
  11. int fileReader(char* fileName)
  12. {
  13.     /* On ouvre en lecture seule le fichier.
  14.     int numberFile = open(fileName, O_RDONLY);
  15.    
  16.     /* Si la valeur de numberFile est égale à -1,
  17.        le fichier ne peut pas être ouvert. */
  18.     if(numberFile == -1)
  19.     {
  20.         perror("my_cat:open"); // On capture l'erreur système et on l'affiche.
  21.         return 1; // On retourne la valeur 1 pour indiquer une erreur.
  22.     }
  23.     else
  24.     {
  25.         /* On déclare un buffer de 513 caractères
  26.            afin d'éviter un potentiel buffer overflow */
  27.         char buffer[513];
  28.         int size = 0;
  29.         /* Tant que le fichier n'a pas été entièrement lu,
  30.            on reste dans cette boucle. */
  31.         while((size = read(numberFile, buffer, 512)) > 0)
  32.         {
  33.             // On écrit le contenu du buffer dans la sortie standard.
  34.             write(1, buffer, size);
  35.         }
  36.         close(numberFile); // On ferme le fichier qui a été ouvert.
  37.         // On retourne la valeur 0 pour indiquer que tout, c'est bien passé.
  38.         return 0;
  39.     }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement