Arguments de main

La fonction principale main (vue au premier chapitre) peut en fait recevoir des arguments. Il s’agit du nombre d’arguments passés à la ligne de commande du système d'exploitation (pour ceux qui utilisent le mode terminal), de la valeur de ces arguments, et de l’environnement courant du système.

Ainsi, si vous avez écrit la fonction principale d’un programme nommé prog de la façon suivante :

main(int argc, char *argv[], char *env[])
          {
              // ...
          }

et qu’au moment de son utilisation on tape ceci (à la ligne de commande du DOS) :

/bin/prog argument1 argument2

alors dans le programme, argc vaudra 3 (un de plus que le nombre d’arguments), et argv sera un tableau de pointeurs char* contenant les pointeurs sur les chaînes "/bin/prog", "argument1" et "argument2" respectivement. On peut ainsi tester le nombre d’arguments passés, et leur valeur.

Quant au tableau env, il contient la liste des variables d’environnement du système, sous la forme « VAR=valeur » ; par exemple en DOS, on trouvera peut-être « PATH=C:\DOS;C:\;C:\TC\BIN » ; la dernière chaîne est nulle, indiquant la fin du tableau. Les variables environnement peuvent être obtenues plus simplement en utilisant la fonction getenv de <stdlib.h>.

Vous pouvez déclarer main sous l’une des quatre formes suivantes :

main()           // paramètres  inaccessibles
main(int argc    // nombre de paramètres
main(int argc, char *argv[])    // paramètre seulss
main(int argc, char *argv[], char *env[])    // tout

Le nom des paramètres est à votre choix, mais leur type et leur ordre est imposé.

Précédent Précédent Sommaire Sommaire Suivant Suivant