Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/11/2007, à 00: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, à 01: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, à 01: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, à 02: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, à 02: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. wink

Dernière modification par moi.néo (Le 22/11/2007, à 02:58)

Hors ligne

#6 Le 22/11/2007, à 10: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, à 10: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, à 15:17

pixi-pix

Re : Comment gérer les options (-r -xvzf ...) d'une commande en C ?

moi personnelement je vous conseil plus un execve smile

a utiliser a la fonction fork wink

Hors ligne

#9 Le 22/11/2007, à 15:21

nicolas.sitbon

Re : Comment gérer les options (-r -xvzf ...) d'une commande en C ?

pixi-pix a écrit :

moi personnelement je vous conseil plus un execve smile

a utiliser a la fonction fork wink

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, à 15:22)

Hors ligne

#10 Le 22/11/2007, à 16: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 !!! big_smile

Hors ligne