Bonjour à tous,
je me prend la tete depuis hier soir sur un pb avec la fonction "fscanf" pour parcourir un fichier de type CSV.
mon bout de code fonctionne tres bien lorsque je le compile sur un serveur debian avec gcc version "gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)"
et ne fonctionne que partiellement sur un autre serveur avec gcc version "(GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)"
quand je dit "partiellement" c'est parce-que 8 fois sur 10, ma variable "pattern" est NULL, alors que le fichiers CSV est bien renseigné :-(
est-ce que vous avez deja rencontré ce genre de pb
PS: je compile comme ceci : gcc -o test.cgi test.c
PS2 : j'ai plusieurs serveur dedié, et mon code fonctionne sur tout les srv Debian Sarge et sur AUCUN debian Etch !
Code:
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
33
34
35
36 #include <stdio.h> #include <stdlib.h> #define MYCSV "test.csv" int main() { /* pointer fichier csv */ FILE *csv; /* contenu du csv 0,texte1,valeur1,valeurb,valeura,valeurc 5,texte2,valeur2,valeura,valeurb,valeurc 2,texte3,valeur3,valeurb,valeurc,valeura */ int sid; char pattern[255]; char val1[10]; char val2[16]; char val3[16]; if((csv=fopen(MYCSV,"r")) == NULL) { printf("Failed to open csv !"); } else { while((fscanf(csv,"%d,%[^,],%[^,],%[^,],%s\n",&sid,pattern,val1,val2,val3)) != EOF ) { printf("- %s\n",pattern); } fclose(csv); } }