Arguments de ligne de commande en C expliqués
Publié: 2022-04-29Les arguments de ligne de commande sont utilisés lorsqu'un programme doit être contrôlé de l'extérieur plutôt qu'en interne. Il s'agit d'une interface texte pour les développeurs où les arguments sont directement passés à la méthode primaire.
Les valeurs transmises dans une fonction lorsqu'elle est appelée sont appelées arguments. En d'autres termes, un argument est un paramètre qui est passé à une méthode donnée lorsqu'elle est invoquée.
Syntaxe :
int main() { /* … */ }
Le code ci-dessus reçoit la commande et la transmet au système d'exploitation de l'ordinateur pour qu'il s'exécute. Ces commandes sont toujours invoquées lors de l'exécution d'un code.
Les arguments de ligne de commande CC et C++ sont assez faciles à implémenter en raison de leur simplicité et de leurs syntaxes facilement déchiffrables.
Pour passer des arguments de ligne de commande, la fonction principale doit être définie par deux arguments :
- Le nombre total d'arguments de ligne de commande
- La liste complète des arguments de la ligne de commande
Syntaxe :
int main(int argc, char *argv[]) { /* … */ }
- argc (ARGument Count) est défini comme un type de données entier qui stocke le nombre total d'arguments de ligne de commande. Naturellement, cela devrait toujours être une valeur non négative.
- argv (ARGument Vector) désigne un tableau de pointeurs du type de données caractère utilisé pour stocker la liste complète des arguments de ligne de commande.
À l'aide de la ligne de commande, les développeurs peuvent accéder à une gamme de fichiers et de dossiers sur leurs ordinateurs. Un programme donné qui contient plusieurs arguments de ligne de commande peut rapidement identifier les sources ou les destinations des données données. Il a également le potentiel de modifier le fonctionnement du programme. Cela rend le processus de construction plus facile à mettre en contrôle de source.
Dans le domaine du développement, un large éventail de tâches ne nécessite pas de visualisation réelle. Dans de tels cas, toutes les fonctions peuvent être exécutées à l'aide d'arguments de ligne de commande. Il existe une exigence très rare pour une interface graphique littérale. Cela permet d'économiser beaucoup d'argent, d'efforts et de ressources.
Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.
Propriétés | Arguments de ligne de commande en C
Les arguments de ligne de commande ont quelques propriétés intéressantes et utiles. Ils sont les suivants :
- Pour imprimer le nom du programme, la commande doit être argv[0]
- argv[argc] est essentiellement un pointeur nul
- Pour imprimer le premier argument fourni par l'utilisateur, la commande doit être argv[1]
- L'utilisateur passe des arguments de ligne de commande depuis le terminal
- L'utilisation de ces commandes est de contrôler les programmes de l'extérieur, au lieu d'avoir à coder en dur les valeurs à l'intérieur du programme
- Les arguments de la ligne de commande sont transmis à la fonction main() à tout moment
- Le premier argument de la commande land est argv[1], tandis que la dernière commande est argv[n]
Exemple d'argument de ligne de commande
Voici un programme de démonstration pour les arguments de ligne de commande en C :
// Programme C pour illustrer
// arguments de la ligne de commande
#include<stdio.h>
int main(int argc,char* argv[])
{
compteur int ;
printf("Le nom du programme est : %s",argv[0]);
si(argc==1)
printf("\nAucun argument de ligne de commande supplémentaire passé autre que le nom du programme");
si(argc>=2)
{
printf("\nNombre d'arguments passés : %d",argc);
printf("\n—-Voici les arguments de la ligne de commande passés—-");
pour(compteur=0;compteur<argc;compteur++)
printf("\nargv[%d] : %s",compteur,argv[compteur]);
}
renvoie 0 ;
}
La sortie diffère selon divers scénarios. Ils ont été expliqués plus en détail individuellement.
- Sans argument :
Pour produire la sortie suivante, le code doit être exécuté sans passer d'argument :
Sortie 1 –
$ ./a.out
Le nom du programme est : ./a.out
Aucun argument de ligne de commande supplémentaire passé autre que le nom du programme
- Avec trois arguments :
Pour produire la sortie suivante, le code doit être exécuté avec trois arguments.
Sortie 2 –
$ ./a.out Premier Deuxième Troisième
Le nom du programme est : ./a.out
Nombre d'arguments passés : 4
—- Voici les arguments de la ligne de commande passés —-
argv[0] : ./a.out
argv[1] : premier
argv[2] : Deuxième
argv[3] : Troisième
- Avec un seul argument :
Le code doit être compilé et exécuté avec un seul argument qui doit être séparé par un espace tout en étant entre guillemets pour produire la sortie suivante.
Sortie 3 –
$ ./a.out "Premier Deuxième Troisième".
Le nom du programme est : ./a.out
Nombre d'arguments passés : 2
—- Voici les arguments de la ligne de commande passés —-
argv[0] : ./a.out
argv[1] : Premier Deuxième Troisième
- Avec un seul argument entre guillemets et séparé par un espace :
Le code doit être compilé et exécuté avec un seul argument séparé par un espace mais entre guillemets simples pour produire la sortie suivante.
Sortie 4 –
$ ./a.out 'Premier Deuxième Troisième'
Le nom du programme est : ./a.out
Nombre d'arguments passés : 2
—- Voici les arguments de la ligne de commande passés —-
argv[0] : ./a.out
argv[1] : Premier Deuxième Troisième
Avantages des arguments de ligne de commande en C
L'utilisation d'arguments de ligne de commande en C présente plusieurs avantages. Ils sont les suivants :
- Les arguments de ligne de commande en C peuvent être utilisés lorsqu'un programmeur ou un utilisateur souhaite transmettre les valeurs au programme de l'intérieur au lieu de le faire en interne.
- Les applications en ligne de commande peuvent être très facilement conçues pour être utilisées dans des fichiers batch ou des scripts. Cela est d'une grande aide en ce qui concerne les tests automatisés ou les builds.
- La ligne de commande est plus facile à développer si les programmeurs écrivent les outils au lieu de les utiliser. La saisie d'arguments est considérée comme une tâche beaucoup plus complexe et chronophage que la sortie d'un flux de texte.
- Les flux d'entrée, de sortie et d'erreur peuvent être très facilement redirigés lorsque des informations peuvent être envoyées ou reçues à partir de divers fichiers et applications.
- Le mécanisme de retour d'erreur dans les arguments de ligne de commande est assez standard et simple.
- Lorsqu'un programmeur ou un utilisateur tente d'accéder depuis son domicile ou sur la route, essentiellement tout en étant mobile, l'utilisation de shells distants ou d'autres connexions similaires facilite l'exécution des tâches.
- Pour la fonction de spécification de plusieurs fichiers, des normes de syntaxe de caractère générique définies sont présentes, qui s'appuient sur les connaissances existantes du développeur ou du programmeur.
- Les lignes de commande sont convaincantes et extrêmement rapides.
En parlant d'avantages dans divers arguments de ligne de commande, voici un autre exemple détaillé ou une démonstration de la façon dont vous devez les implémenter.
#include <stdio.h>
#include <conio.h>
// la méthode main est appelée à laquelle les arguments de la ligne de commande sont passés au programme
int main(int argc, char *argv[])
{
//une variable entière est définie
int un ;
//si la condition est appliquée pour vérifier si le nombre d'arguments passés au programme est supérieur ou égal à deux, et si la condition est vraie, les arguments de la ligne de commande passés au programme sont imprimés. Sinon, aucun argument n'est passé au programme est imprimé
si(argc >= 2)
{
printf("Les arguments passés au programme sont :\n");
pour(a = 1; a < argc; a++)
{
printf("L'argument passé au programme est : %s\t", argv[a]);
}
}
autre
{
printf("Aucun argument n'est passé au programme\n");
}
renvoie 0 ;
}
Production:
Aucun argument n'est passé au programme.
Les arguments de la ligne de commande sont passés au programme dans le code mentionné ci-dessus en appelant la méthode principale. L'étape suivante est la définition d'une variable entière. Ensuite, la condition est passée pour vérifier si le nombre d'arguments passés au programme est supérieur ou égal à 2. Les arguments de ligne de commande passés au programme sont affichés si la condition est vraie. Sinon, aucun argument n'est passé au programme et imprimé.
conclusion
Apprenez-en davantage sur l'importance des arguments de ligne de commande en C et C++ en vous inscrivant au programme Executive PG d'upGrad en développement logiciel - Spécialisation en développement Full Stack . Le cours de 13 mois est conçu pour aider les aspirants professionnels de l'informatique à maîtriser Java, Spring, Hibernate, HTML, React, Git et une gamme d'autres langages de programmation et outils pour créer des applications complexes comme Quora et Swiggy.
Le programme propose également une certification exécutive gratuite de 4 mois en science des données et en apprentissage automatique.
Quels sont les inconvénients de base auxquels doivent faire face les programmeurs lors de l'implémentation d'arguments de ligne de commande en C ?
Même si les arguments de ligne de commande en C sont pratiques pour les développeurs et les programmeurs, ils présentent quelques inconvénients. Les personnes qui n'ont pas les connaissances de base et qui ne sont pas habituées à travailler avec ces commandes peuvent s'avérer assez difficiles à apprendre et à s'adapter, surtout sur une courte période. Cependant, ce n'est pas un problème pour les programmeurs et développeurs chevronnés. Mais cela s'avère parfois être un obstacle pour les employés juniors qui peuvent provenir de domaines différents ou adjacents. De plus, les arguments de ligne de commande ont besoin d'un clavier pour être implémentés et exécutés. Cela devient souvent un obstacle si quelqu'un a besoin d'y accéder via son téléphone ou son iPad, etc.
Quels sont les délimiteurs utilisés pour séparer les arguments de la ligne de commande ?
Pour séparer les arguments de la ligne de commande, des espaces vides sont généralement utilisés. Ils séparent le nom de la commande de ses paramètres et séparent divers paramètres entre eux. Ils sont également utiles pour séparer une liste de différentes valeurs. Les blancs multiples sont généralement traités comme un seul blanc. La seule exception à cela se produit dans une chaîne entre guillemets ou un commentaire entre guillemets simples.
Est-il possible de convertir les arguments de la ligne de commande ?
Tous les arguments de ligne de commande sont transmis sous forme de chaîne. Les valeurs numériques doivent toujours être converties par les programmeurs ou les utilisateurs dans leurs formes internes, en utilisant un effort manuel. La fonction main reçoit toujours ses paramètres, qui sont généralement un tableau de chaînes. C'est le seul argument de fonction que la fonction principale accepte. Les types de données de chaîne sont conçus pour être utilisés lors du stockage des arguments de ligne de commande.