Intéraction Entr/Sortie avec main(argc, argv)

sebastien61 Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   -  
sebastien61 Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voilà je cherche à "tagger" une phrase en anglais, c'est-à-dire associer à chaque mot son type (nom, adjectif,...). Pour cela j'utilise une bibliothèque SVMTool qui s'utilise en ligne de commande à l'aide de la formule suivante (sous linux) :
 
./SVMTagger -v ../eng/WSJTP < fichierEntree > fichierSortie 


Je souhaiterai utiliser cette application dans mon programme, sans avoir à passer en ligne de commande...
Le probleme avec la commande est que je ne comprends pas l'intéraction entre le programme SVMTagger et les fichiers d'entrée et de sortie. Comment le programme sait-il que le fichier d'entrée est "fichierEntree" (il ne semble pas passé dans la chaîne de caractère argv...) ?

Merci d'avance

4 réponses

el_linwin Messages postés 521 Statut Membre 90
 
Bonjour sebastien61,

C'est l'analyse de la présence des caractères '<' et '>' (ici, ils sont en argv[3] et argv[5] si je ne m'abuse) qui lui permet de savoir que fichierEntree (argv[4]) est le fichier source et que fichierSortie (argv[6]) est le fichier de destination.

Cordialement,
el_linwin
0
dubcek Messages postés 18788 Date d'inscription   Statut Contributeur Dernière intervention   5 643
 
le programme ne le sait pas, c'est le shell qui définit le standard input et le standard output:
< fichierEntree remplace le clavier
0
el_linwin Messages postés 521 Statut Membre 90
 
Bonjour dubcek,

Autant pour moi, c'est ici effectivement le shell qui analyse le tout.

Cordialement,
el_linwin
0
sebastien61 Messages postés 495 Date d'inscription   Statut Membre Dernière intervention   59
 
Entendu,
merci pour votre aide.
@+
0