next up previous contents index
Next: Automates finis Up: No Title Previous: Tableaux de chaînes de

Arguments de la fonction main

          

Dans sa forme générale, main peut opérer sur la ligne de commande passée à l'interprète de commandes pour faire exécuter le programme. Cette ligne, qui est une chaîne de caractères, comprend toujours le nom de la commande et optionnellement des arguments, tous séparés par des espaces. La ligne de commande est donc représentée comme un tableau de chaînes de caractères, conventionnellement appelé argv, et le nombre d'éléments de ce tableau est argc :

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

Le premier élément de ce tableau, argv[0] est toujours le nom du programme, de sorte que argc vaut toujours au moins 1. Les arguments du programme sont argv[1], ..., argv[argc-1]. En outre, argv[argc] est (le pointeur) nul.

Par exemple, le programme qui additionne des entiers peut s'écrire, de la façon suivante, en utilisant la fonction atoi. Cette fonction convertit une chaîne de caractères, qui est la notation d'un entier, en cet entier ; elle est déclarée dans stdlib.h (il y a aussi une fonction analogue atof qui retourne un double) :

     

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
  int somme = 0;
  int i;

  for(i=1; i < argc ; i++) {
    somme = somme + atoi(argv[i]);
  }
  printf("%d\n", somme);
  return 0;
}

Si ce programme source est placé dans un fichier add.c et si on le compile par

unix% gcc -o add add.c

alors, on pourra exécuter

unix% add 12 23 34

et obtenir 69 comme réponse.


next up previous contents index
Next: Automates finis Up: No Title Previous: Tableaux de chaînes de
Jean-Philippe Chancelier
9/29/1998