Arguments de la ligne de commande
Les arguments d'une ligne de commande sont transmis au programme sous
la forme de chaînes de caractères. Le séparateur
des arguments est une suite non vide de caractères d'espacement
: espace ou tabulation.
La fonction main a deux
paramètres : argc
de type int et argv de type char * [].
argc donne le nombre
d'éléments de la ligne de commande, et argv contient ces
éléments
sous la forme d'un tableau de chaînes de caractères. argv[0] contient le nom de la
commande, argv[i], pour i allant de 1 à argc-1, le ième argument.
Le programme echo (echo.c)
illustre cela.
$ gcc -Wall -std=c99
echo.c -o echo
$ echo a b c
a b c
Pour préciser que l'on souhaite utiliser le programme echo local et non la commande
Unix echo, il est
nécessaire de l'emplacement de la commande en faisant
précéder echo
de "./"
$ ./echo a b c
argc = 4
argv[0] = ./echo
argv[1] = a
argv[2] = b
argv[3] = c
Voici des
exemples d'exécutions dans lesquels on notera l'utilisation de
l'apostrophe et du caractère antislash
'\'.
$ ./echo Bonjour l\'UE
Initiation a la programmation !
argc = 8
argv[0] = ./echo
argv[1] = Bonjour
argv[2] = l'UE
argv[3] = Initiation
argv[4] = a
argv[5] = la
argv[6] = programmation
argv[7] = !
$ ./echo Bonjour l\'UE 'Initiation a la programmation' !
argc = 5
argv[0] = ./echo
argv[1] = Bonjour
argv[2] = l'UE
argv[3] = Initiation a la programmation
argv[4] = !
$ ./echo Bonjour l\'UE Initiation\ a\ la\ programmation !
argc = 5
argv[0] = ./echo
argv[1] = Bonjour
argv[2] = l'UE
argv[3] = Initiation a la programmation
argv[4] = !