Programmation » [C] Parser (BCP) de fichier
Catégorie:  
   
[C] Parser (BCP) de fichier
Publié le 19/02/2009 @ 14:44:51,
Par blietaer
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?
Et au besoin s'arrêter.
   
[C] Parser (BCP) de fichier
Publié le 19/02/2009 @ 15:04:02,
Par philfr
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.
   
[C] Parser (BCP) de fichier
Publié le 19/02/2009 @ 15:08:12,
Par blietaer
oui, c'est exactement cela.

mmmh je vais man 3 glob...

Dernière édition: 19/02/2009 @ 15:08:41
Et au besoin s'arrêter.
   
[C] Parser (BCP) de fichier
Publié le 19/02/2009 @ 15:26:10,
Par blietaer
une fois de plus...merci bcp... :prosterne:

Dernière édition: 19/02/2009 @ 15:26:31
Et au besoin s'arrêter.
Répondre - Catégorie:  
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?