Récupérer les arguments passés sur la ligne de commande

Problème

Votre programme a été lancé avec des arguments sur la ligne de commande et vous souhaitez en prendre connaissance.

Solution

Utilisez getopt() pour des arguments simples et faites-le vous-même dès qu’il y a des options longues.

Discussion

Si tous vos arguments sont des options de type -x où x est un seul caractère, vous pouvez utiliser getopt(). À chaque itération de la boucle contenant getopt(), la valeur de retour est le caractère correspondant à l’option. Si le caractère a été spécifié en argument à getopt() suivi d’un double point, la variable optarg contient alors l’argument suivant. Lorsque getopt() n’a pas reconnu un argument, elle renvoie ’?’. La fonction renvoie -1 lorsque tous les arguments ont été traités ou lorsque l’argument -- a été rencontré. Enfin, la variable optind contient l’index de l’option dans le tableau argv. L’exemple suivant illustre l’identifiant d’une option -a et d’une option -b suivie d’un argument.


int r; 
 
while (-1 != (r = getopt (argc, argv, "ab:"))) 
  switch (r) 
    { 
    case 'a': 
      printf ("Option -a\n"); 
      break; 
    case 'b': 
      printf ("Option -b <%s>\n", optarg); 
      break; 
    case...
Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Récupérer la sortie standard d'un programme
Suivant
Envoyer des données sur l'entrée standard d'un programme