Bonjour, j'ai un problème apparement très simple, je me suis pris la tête toute la nuit dernière et aujourdh'ui sur ce truc, impossible de débloquer la situation donc je ne sais plus quoi faire, permettez-moi de vous soumettre la chose.
Je souhaite tout simplement lire dans un fichier (de n'importe quel format), mettre ce que je lis dans un buffer de données de type char (typé ainsi que je pourrais lire octet par octet).
Voici ma fonction :
Simple non ? le problème est qu'a l'affichage sur l'écran, je n'ai que 4 caractères d'écrit et si j'essaye d'écrire mon buffer dans un autre fichier (ce qui est mon but), sa ne m'écrit que ces quelques caractères.
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 char* fichier_lire_bloc(char *nom_fichier,int size) { int f= open(nom_fichier, O_RDONLY); char *donnees=(char*)malloc(sizeof(char)*size); if(read(f, donnees, size) < 0) { perror("fichier_lire_bloc" ); close(f); return -1; }*/ printf(" sizeof(donnees) lire_bloc2 : %d\n",(int)sizeof(donnees2)); printf("voici les données \n %s \n",donnees2); close(f); return donnees; }
J'ai tout essayé, de déclarer mon buffer en static (char donnees[4096]), lire d'autres taille (je voudrais lire des blocs de 4096)...
Auriez-vous une solution, y a t'il quelque chose qui vous saute aux yeux ? Je n'en peux plus de m'arracher les cheveux sur cette partie, je deviens fou![]()
Merci d'avance pour vos réponse
EDIT : Precision je suis sous linux ubuntu
Partager