Voici une fonction qui doit mettre en mémoire un fichier texte dans un char * :
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
31
32
 
#define fichierConf "config.php"
int main(int argc, char *argv[], char **envp){
    char *confSrc="yep";    
    loadTextFile(fichierConf, &confSrc);
    printf("%s",confSrc);
    free(confSrc);    
    exit(0);
}
 
 
void loadTextFile(char *name, char **stockage){
    #define tailleBuffer 512
    char buffer[tailleBuffer];
    FILE *file;
    int NbLu;
    int taille=strlen(*stockage);
    printf("TAille initiale : %i\n",taille);
 
    if((file=fopen(name, "r")) == NULL){
	printf("Ouverture impossible du fichier %s :s\n",name);	
	exit(1);
    }
 
    while( (NbLu=fread(buffer, 1, tailleBuffer, file)) != 0){
	taille+=NbLu;
	*stockage=(char *) realloc(*stockage,taille+1);
	strncat(*stockage,buffer,NbLu);
	(*stockage)[taille-1]=0x0;
    }
    fclose(file);
}
Quand mon char * de stockage (confSrc) est initialisé à 0x0, le prog marche mais j'ai un caractère bizarre qui s'insère au tout début. Par contre, quand il est déjà initialisé, le prog plante