Cas particulier du main

Jusqu'à présent nous utilisions le prototype suivant pour le main:
int main(void)

Mais en fait il est possible d'avoir des paramètres formels pour le main qui sont fixés par la syntaxe du C et qui permettent d'obtenir des informations en provenance de l'"extérieur" passées lors de l'appel du programme:
int main(int nbArg, char* argv[])

nbArg est le nombre d'arguments sur la ligne de commande y compris le nom du programme, argv est un tableau de chaînes qui contient les arguments. Ainsi si td0exo1 est un programme exécutable:

            td9exo1 bonjour les 50000 amis  

est un appel de td9exo1 avec  nbArg = 5 et argv est un tableau qui contient les 5 chaines "td9exo1" "bonjour" "les" "50000" "amis". Par exemple, argv[2] pointe vers la chaîne "bonjour".


Fichier td9exo1.c
int main(int nbArg, char* argv[])
{
int i;
printf ("Le nom du programme est %s \n",argv[0]);
if (nbArg != 1)
   for (i=1; i<nbArg; i++)
          printf("\nargument n° %d: %s \n",i,argv[i]);
else printf("Pas d'argument");
}


exemple d'appel:
td9exo1 bonjour les 50000 amis  
Le nom du programme est td9exo1
argument n°1: bonjour
argument n°2: les
argument n°3: 50000
argument n°4: amis


Attention: 50000 est une chaîne de caractères
 
suivant           plan