Maîtriser les arguments de ligne de commande en C : Guide pratique
Il est possible de passer des valeurs depuis la ligne de commande à vos programmes C lors de leur exécution. Ces valeurs sont appelées arguments de ligne de commande et sont souvent importantes pour votre programme, surtout quand vous voulez le contrôler de l'extérieur au lieu de coder ces valeurs en dur.
Les arguments de ligne de commande sont gérés via les arguments de la fonction main() où argc désigne le nombre d'arguments passés, et argv[] est un tableau de pointeurs pointant vers chaque argument passé au programme. Voici un exemple simple qui vérifie s'il y a un argument fourni en ligne de commande et agit en conséquence :
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc == 2) {
printf("L'argument fourni est %s\n", argv[1]);
} else if (argc > 2) {
printf("Trop d'arguments fournis.\n");
} else {
printf("Un argument attendu.\n");
}
}
Lorsque le code ci-dessus est compilé et exécuté avec un seul argument, il produit le résultat suivant :
$./a.out test L'argument fourni est test
Avec deux arguments :
$./a.out test1 test2 Trop d'arguments fournis.
Sans argument :
$./a.out Un argument attendu.
Notez que argv[0] contient le nom du programme lui-même, argv[1] pointe vers le premier argument de ligne de commande, et *argv[n] est le dernier argument. Si aucun argument n'est fourni, argc vaut 1 ; si vous passez un argument, argc vaut 2.
Vous passez tous les arguments séparés par un espace, mais si un argument contient lui-même un espace, vous pouvez l'entourer de guillemets doubles "" ou simples ''. Réécrivons l'exemple pour afficher le nom du programme et passer un argument avec des espaces entre guillemets doubles :
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("Nom du programme %s\n", argv[0]);
if (argc == 2) {
printf("L'argument fourni est %s\n", argv[1]);
} else if (argc > 2) {
printf("Trop d'arguments fournis.\n");
} else {
printf("Un argument attendu.\n");
}
}
Lorsque le code ci-dessus est compilé et exécuté avec un seul argument contenant un espace mais entre guillemets doubles, il produit :
$./a.out "test1 test2" Nom du programme ./a.out L'argument fourni est test1 test2
Langue C
- Comprendre les décodeurs : Types, tables de vérité et applications pratiques
- Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
- Maîtriser les arguments de ligne de commande Java : comment passer et analyser les paramètres
- Comprendre l'efficacité de ligne : Métriques clés pour la production PCB
- Comprendre les lignes de production : comment les chaînes de montage stimulent l'efficacité manufacturière
- Qu'est-ce qu'une ligne de recul (alignement de construction) ? Guide pour propriétaires
- Comprendre les dérives de pont (bridge taps) : comment elles affectent votre service téléphonique
- Comprendre la chaîne de montage : comment les pièces interchangeables pilotent une production efficace
- Lignes de refendage de précision : coupe automatisée avancée de bobines pour largeurs exactes