Sujet: [C] Parser (BCP) de fichier
19/02/2009 @ 14:44:51: blietaer: [C] Parser (BCP) de fichier
Bonjour,

Nouvelle petite question :

Dans une application pure-C, je dois parser une 50aine de fichier de logs-proprio. (un total de +/- 250.000lignes) et puis faire des stats.

J'ai déjà les fonctions d'appel système qui me permettent de fork(), puis execvp() et donc je peux passer n'importe qu'elle commande. Enfin, j'ai aussi à ma disposition une petite routine maison qui peut avaler des lignes et les regexper pour en sortir des token.

Tout cela marchait très bien quand je n'avais qu'un fichier à lire ...

Maintenant je voudrais faire un petit:
cat /mes-files-2008-12-*

et c'est bien sûr le "*" qui coince puisque c'est un wildcard BASH (qui s'occupe de l'ouvrir et de remplacer les args _avant_ l'appel de cat...

C'est là qu'est l'os.

Il y a aussi bien sûr des scandir() etc.. mais ils sont EXT3/4-spécifiques pour la plupart et je trouve cela trop limitant...


Des idées?
19/02/2009 @ 15:04:02: philfr: [C] Parser (BCP) de fichier
Tu veux lancer "cat <pattern>" depuis un fork/exec, c'est ça ?
Pourquoi ne pas utiliser system(3) ?
Sinon, glob(3) peut convertir ton pattern en argv à passer dans execv.
19/02/2009 @ 15:08:12: blietaer: [C] Parser (BCP) de fichier
oui, c'est exactement cela.

mmmh je vais man 3 glob...
19/02/2009 @ 15:26:10: blietaer: [C] Parser (BCP) de fichier
une fois de plus...merci bcp... :prosterne:
Retour