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] = !