Bonjour,
Voila j'ai un petit soucis avec mon code qui doit lire le contenu d'un fichier l'afficher sur la sortie standard mais seulement je ne dois utiliser que des appels systèmes. Mon code est le suivant:
Voila alors mon problème est que lorsque j'utilise "fstat ()" pour connaitre la taille de mon fichier et bien je n'ai plus rien du tout qui s'affiche, alors que si je l'enlève et que je remplace "s.st_size" par son contenu en dure et bien ça marche et je n'ai aucune idée du pourquoi...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 #include<stdio.h> #include<fcntl.h> #include<stdlib.h> #include<sys/stat.h> int main (void) { int tab[256] = {0}, fd = open ("toto.txt", O_RDONLY); char *c; ssize_t taille = 0; struct stat s; if (fd == -1) { printf ("Erreur lors de l'ouverture du fichier\n"); exit (1); } fstat (fd, &s); c = malloc (s.st_size * sizeof (char)); taille = read (fd, &c, s.st_size); if (taille == -1) { printf ("Erreur lors de la lecture du fichier\n"); exit (1); } printf ("%s\n", c-1); close (fd); return 0; }Si quelqu'un pouvais bien m'éclairer
Merci d'avance
![]()
Partager