Introduction
Dans ce projet, vous allez apprendre à analyser et à gérer les arguments de ligne de commande dans un programme C. C'est une compétence fondamentale en développement logiciel, car de nombreux programmes acceptent et traitent des arguments de ligne de commande pour personnaliser leur comportement.
👀 Aperçu
$ gcc cmd.c -o cmd
$./cmd --arg1 1 --arg2 demo --arg9 labex
arg1:1
arg2:demo
arg9:labex
🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment créer un fichier C et écrire la structure de base d'un programme C
- Comment analyser les arguments de ligne de commande et extraire les noms et les valeurs des paramètres
- Comment imprimer les noms et les valeurs des paramètres dans le format requis
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Comprendre le concept d'arguments de ligne de commande et de savoir comment les utiliser dans un programme C
- Implémenter un programme capable d'analyser et de gérer les arguments de ligne de commande
- Appliquer vos connaissances en programmation C pour résoudre un problème pratique
Créer le fichier C
Dans cette étape, vous allez créer le fichier C pour le programme d'arguments de ligne de commande.
- Ouvrez un terminal et accédez au répertoire du projet :
cd ~/projet
- Créez un nouveau fichier C nommé
cmd.cdans le répertoire du projet :
touch cmd.c
- Ouvrez le fichier
cmd.cdans un éditeur de texte et ajoutez le code suivant :
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
// Votre code ira ici
return 0;
}
Voici la structure de base du programme C qui gérera les arguments de ligne de commande.
Implémenter l'analyse d'arguments de ligne de commande
Dans cette étape, vous allez implémenter la logique pour analyser les arguments de ligne de commande et imprimer les noms et les valeurs des paramètres.
- Dans la fonction
main(), ajoutez une boucle pour parcourir les arguments de ligne de commande :
for (int i = 1; i < argc; i++) {
// Votre code ira ici
}
La boucle commence à l'index 1 car argv[0] contient le nom du programme.
- À l'intérieur de la boucle, vérifiez si l'argument actuel commence par
--:
if (strncmp(argv[i], "--", 2) == 0) {
// L'argument est un paramètre
char *param = argv[i] + 2; // Supprime le préfixe "--"
char *value = NULL;
// Vérifiez s'il y a une valeur après le paramètre
if (i + 1 < argc && strncmp(argv[i + 1], "--", 2)!= 0) {
value = argv[i + 1];
i++; // Passe l'argument de valeur
}
printf("%s:%s\n", param, value);
}
Ce code extrait le nom et la valeur du paramètre des arguments de ligne de commande et les imprime dans le format requis.
- Le code final est le suivant :
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
for (int i = 1; i < argc; i++) {
if (strncmp(argv[i], "--", 2) == 0) {
char *param = argv[i] + 2; // Supprime le préfixe "--"
char *value = NULL;
// Vérifiez s'il y a une valeur après le paramètre
if (i + 1 < argc && strncmp(argv[i + 1], "--", 2)!= 0) {
value = argv[i + 1];
i++; // Passe l'argument de valeur
}
printf("%s:%s\n", param, value);
}
}
return 0;
}
- Enregistrez le fichier
cmd.c.
Compiler et exécuter le programme
Dans cette étape, vous allez compiler le programme C et l'exécuter avec quelques arguments de ligne de commande d'exemple.
- Compiler le fichier
cmd.c:
gcc cmd.c -o cmd
Cela créera un fichier exécutable nommé cmd.
- Exécuter le programme avec quelques arguments de ligne de commande d'exemple :
./cmd --arg1 1 --arg2 demo --arg9 labex
Vous devriez voir la sortie suivante :
arg1:1
arg2:demo
arg9:labex
- Essayez d'exécuter le programme avec quelques paramètres dupliqués :
./cmd --testarg1 1 --testarg2 demo --testarg1 labex
Vous devriez voir la sortie suivante :
testarg1:1
testarg2:demo
testarg1:labex
Félicitations ! Vous avez réussi à implémenter le programme d'analyse d'arguments de ligne de commande.
Résumé
Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.



