Programmation C · 2 min read · Nov 20, 2025
Tutoriel de programmation C sous Linux partie 22 - Accéder aux arguments de la ligne de commande dans un programme C

Dans le tutoriel précédent, nous avons discuté de plusieurs concepts liés aux pointeurs dans le langage de programmation C. L’un des concepts que nous avons abordés était un tableau de pointeurs. Nous avons utilisé l’exemple d’un tableau de pointeurs d’entiers pour démontrer le concept.
Comment accéder aux arguments de la ligne de commande dans un programme C
Mais comme mentionné dans ce tutoriel, un tableau de pointeurs peut être de différents types. Par exemple, voici un tableau de pointeurs de caractères :
char *arr[] = {"HowtoForge", "FaqForge", "Linux"};Et voici un petit programme qui montre comment ce tableau peut être utilisé :
#include
int main()
{
char *arr[] = {"HowtoForge", "FaqForge", "Linux"};
printf("\n %s", *arr);
printf("\n %s", *(arr+1));
printf("\n %s", *(arr+2));
return 0;
} ‘arr’ est l’adresse du premier élément de ce tableau. Maintenant, puisque c’est un tableau de pointeurs, le premier élément (et tous les autres éléments, accessibles en ajoutant 1 et 2 à arr) n’est rien d’autre qu’une adresse. Donc, pour accéder à la valeur conservée à cette adresse, nous utilisons l’opérateur *.
Voici la sortie de ce programme :
HowtoForge
FaqForge
LinuxDonc, c’est ainsi que vous accédez aux valeurs d’un tableau de pointeurs de caractères. Maintenant, vous devez vous demander pourquoi nous avons discuté de tout cela ?
Eh bien, nous l’avons fait parce que cela nous amène à un autre concept important, qui est la capacité d’accéder aux arguments de la ligne de commande dans des environnements qui prennent en charge le langage de programmation C. Discutons-en en détail.
Comme vous devriez le savoir maintenant, ‘main’ est la première fonction de votre programme qui est appelée lorsque le programme est exécuté. Elle est appelée avec deux arguments : argc et argv. Alors que le premier vous indique le nombre d’arguments de la ligne de commande, le second est en réalité un tableau de pointeurs vers les arguments eux-mêmes.
Veuillez noter que le nom du programme lui-même est passé comme argument à la fonction principale. Donc, à cause de cela, le nombre d’arguments - représenté par argc - est un de plus que le nombre réel d’arguments passés au programme. Voici un exemple :
#include
int main(int argc, char *argv[])
{
printf("\n %d", argc);
printf("\n %s", *argv);
return 0;
} Maintenant, nous avons exécuté ce programme - appelé a.out, et présent dans le répertoire ‘home’ de notre système - sans aucun argument. Et voici la sortie :
1
/home/a.outDonc, vous pouvez voir que le nom d’exécution du programme a été passé comme argument. Si j’avais utilisé la commande suivante :
/home/a.out htf ffAlors dans ce cas, argc aurait été 3 et argv aurait contenu les adresses des chaînes ‘/home/a.out’, ‘htf’ et ‘ff’.
Voici une meilleure façon d’écrire le programme d’impression des arguments :
#include
int main(int argc, char *argv[])
{
for(int i=0; i Il est bon de se rappeler que les arguments sont stockés dans le tableau dans le même ordre dans lequel ils sont passés sur la ligne de commande.
Conclusion
Vous rencontrerez probablement plusieurs situations où vous devrez traiter des arguments de ligne de commande dans votre code C. Ce que nous avons discuté ici devrait constituer une base pour vous. Essayez de réaliser quelques programmes de votre côté pour mieux comprendre comment les arguments de ligne de commande sont accessibles dans un programme C.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.