#1 Le 21/11/2007, à 23:55
- moi.néo
Comment gérer les options (-r -xvzf ...) d'une commande en C ?
Je cherche une manière assez intelligente de gérer les options d'une commande en C.
Je m'explique :
Considérons par ex. la commande "rm":
On peut lui spécifier les options suivantes : d,f,i ou/et r.
Cependant, il faut précéder ces options par un tiret -.
De plus, on peut concaténer (ou pas ces options) : -rf ou -r -f
Voila.
C'est tellement vaste que je sais pas comment faire pour gérer ces option en C.
Merci de vos réponses.
Hors ligne
#2 Le 22/11/2007, à 00:24
- JérémieR
Re : Comment gérer les options (-r -xvzf ...) d'une commande en C ?
Utilise :
system("rm -Rf home/login/Desktop/Essai");
Moi ça a marcher avec une commande echo, je pense que ça doit fonctionner avec ça aussi.
Hors ligne
#3 Le 22/11/2007, à 00:37
- nicolas.sitbon
Re : Comment gérer les options (-r -xvzf ...) d'une commande en C ?
Pour ça tu as getopt() et getopt_long() (seulement sous linux la dernière).
Hors ligne
#4 Le 22/11/2007, à 01:33
- doc212
Re : Comment gérer les options (-r -xvzf ...) d'une commande en C ?
si j'ai bien compris, tu a un programme en C et tu voudrais pouvoir lui passer des arguments sous forme d'options à la UNIX genre
"./a.out -r -c -xv -n 13"
pour ça, on m'a conseillé ARGP ou il existe aussi un truc qui s'appelle OPAG (option parser generator)
j'les ai jamais utilisé mais j'devrais m'y mettre sous peu pour un travail que je dois faire...
Hors ligne
#5 Le 22/11/2007, à 01:58
- moi.néo
Re : Comment gérer les options (-r -xvzf ...) d'une commande en C ?
Oui en fait je veux créer une commande, et c'est pour ça que je cherche un moyen de gérer différentes options.
Doc212 a bien compris ce que je veux.
Je vais me pencher sur ARGP, OPAG, getopt() et getopt_long() et je verrai.
Dernière modification par moi.néo (Le 22/11/2007, à 01:58)
Hors ligne
#6 Le 22/11/2007, à 09:11
- Karl_le_rouge
Re : Comment gérer les options (-r -xvzf ...) d'une commande en C ?
man 3 getopt (GNU) ou man 3p getopt pour la version Posix.
T'as même un joli exemple dans la page man.
Sinon, on peut le faire très simplement en traitant les données contenus dans le tableau argv[].
PS: getopt_long existe aussi sous BSD (et MacOS), et sous windows, elle est disponible sous cygwin si je me rappelle correctement.
Hors ligne
#7 Le 22/11/2007, à 09:14
- trucutu
Re : Comment gérer les options (-r -xvzf ...) d'une commande en C ?
+1 pour getopt_long.
Cela te permet de gérer les options courtes et longues ( -o / --option )
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#8 Le 22/11/2007, à 14:17
- pixi-pix
Re : Comment gérer les options (-r -xvzf ...) d'une commande en C ?
moi personnelement je vous conseil plus un execve
a utiliser a la fonction fork
Hors ligne
#9 Le 22/11/2007, à 14:21
- nicolas.sitbon
Re : Comment gérer les options (-r -xvzf ...) d'une commande en C ?
moi personnelement je vous conseil plus un execve
a utiliser a la fonction fork
On parle de gérer les options de la ligne de commande et toi tu parles de creer un processus fils et de recouvrement?
j'ai raté quelque chose?
Dernière modification par nicolas.sitbon (Le 22/11/2007, à 14:22)
Hors ligne
#10 Le 22/11/2007, à 15:42
- moi.néo
Re : Comment gérer les options (-r -xvzf ...) d'une commande en C ?
Merci pour getopt() et getopt_long(pour les options longues).
J'ai regardé vite fait, mais c'est bien ça qu'il me faut.
Je l'implémente dans mon fichier et je vous tiens au courant.
P.S. : le man de la commande est balèse !!!
Hors ligne