Paramètres de ligne de commande C
Lors de l'exécution d'un programme, vous pouvez transmettre des valeurs de la ligne de commande au programme C. Ces valeurs sont appelées Paramètres de ligne de commande et elles sont importantes pour le programme, surtout si vous souhaitez contrôler le programme de l'extérieur plutôt que de coder en dur ces valeurs dans le code.
Les paramètres de ligne de commande sont traités à l'aide des paramètres de fonction main(), où argc fait référence au nombre de paramètres transmis et argv[] est un pointeur pointant sur un tableau à chaque argument passé au programme. Ce qui suit est un exemple simple qui vérifie si les paramètres sont fournis sur la ligne de commande et effectue les actions correspondantes en fonction des paramètres :
#include <stdio.h>int main( int argc, char *argv[] ) { if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); }}
À l'aide d'un paramètre, compilez et exécutez le code ci-dessus, il produira les résultats suivants :
$./a.out testingThe argument supplied is testing
Utilisez deux paramètres, compilez et exécutez le code ci-dessus, il produira les résultats suivants :
$./a.out testing1 testing2Too many arguments supplied.
Ne transmettez aucun paramètre, compilez et exécutez le code ci-dessus, il produira les résultats suivants :
$./a.outOne argument expected
Il est à noter que argv[0] stocke le nom du programme, argv[1] est un pointeur vers le premier argument de ligne de commande, * argv[n ] est le dernier paramètre. Si aucun argument n'est fourni, argc sera égal à 1, sinon si un argument est passé, argc sera défini sur 2.
Plusieurs paramètres de ligne de commande sont séparés par des espaces, mais si les paramètres eux-mêmes contiennent des espaces, les paramètres doivent être placés entre guillemets doubles "" ou guillemets simples '' lors du passage des paramètres. Réécrivons l'exemple ci-dessus pour avoir un espace, vous pouvez ensuite transmettre les vues comme celle-ci et les mettre entre guillemets doubles ou simples """". Réécrivons l'exemple ci-dessus pour transmettre un argument de ligne de commande au programme placé entre guillemets :
#include <stdio.h>int main( int argc, char *argv[] ) { printf("Program name %s\n", argv[0]); if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); }}
À l'aide d'un simple argument délimité par des espaces entre guillemets, compilez et exécutez le code ci-dessus, qui produit les résultats suivants :
$./a.out "testing1 testing2"Progranm name ./a.outThe argument supplied is testing1 testing2