Salut,
Ca fait une plombe que j'ai pas touché au C AINSI sous linux. J'ai qq questions concernant la gestion de args/params en ligne de commande
J'ai un prog qui accepte au max 4 arguments, mais seulement un est obligatoire, les autres étant optionnel. Chaque argument à une "value" cad :
Code :
- // minimum :
- ./monProg -a 2
- // maximum :
- ./monProg -a 2 -b 4 -c 3 -d 5
|
Pour récupérer mon "-a" c'est argv[1], pour récupérer le "2" c'est argv[2] etc.
Pour checker si j'ai mon "a" je fais un
Code :
- if( strcmp(argv[1],"-a" )==0 ) // j'ai bien mon "-a"
|
Ensuite, pour checker si l'utilisateur à bien rentrer un chiffre (2 ici) juste après le "a", que dois-je faire ? Car si je fais un :
Code :
- if( int nb = atoi(argv[2]) );
|
Sauf que si argv[2] (le "2" ici) n'a pas été rentré par l'utilisateur, ca me jète un segfault car argv[2] n'existe pas.. Comment dans ce cas tester l'existence (ou non) d'un argument ? (Une sorte de isset() comme en php..)
Existe-t-il une manière "propre" pour gérer des arguments ? switch/case ? if/else ? autre ?
Merci bcp.