Syntaxe:
Les deux 'argc ' et 'argv ' sont les paramètres de l'instruction COUNT tel qu'accepté par la fonction principale (). 'opinion'est l'argument d'une chaîne qui doit reconnaître les caractères d'options. Tout personnage suivi par un côlon ': «est considéré comme un argument. 'Optind' est la variable initialisée qui est considérée comme un index pour le prochain élément dans lequel il est en ligne ensuite pour le traitement.
Objectif d'utiliser le getOPT en C:
La fonction getOPT () est intégrée en C qui est utilisée pour analyser les arguments en ligne de commande.
Valeur de retour dans la fonction getOPT ()
Si getOPT () apparaît sur un caractère d'option qui n'est pas dans «optstring», il renverra le ('?') Caractère comme sortie. Si un argument est manquant en option, il doit renvoyer un côlon (':') comme sortie. GetOpt () définira la variable «optopt» au caractère sélectionné qui a déclenché l'erreur dans les deux cas. GetOpt () imprimera en conséquence un message indicatif à stderr dans la syntaxe définie pour l'utilitaire «getOpts» si la variable «opterr» n'est pas définie sur 0 et que le caractère initial de `` OptString '' n'est pas un côlon.
La fonction getOPT () n'a pas besoin d'être rentrant. La sécurité des filetages n'est pas obligatoire pour une fonction qui ne doit pas être rentrée.
Exemple pour getOPT () en C:
Prenons un programme simple qui accepte les utilisateurs comme -u et -g pour le groupe. Tout d'abord, vous devez inclure le fichier d'en-tête pour la fonctionnalité getOPT ().
#inclure
Configurons la fonction principale où nous avons «argc» en tant qu'entier et tableau de caractères que «** argv». Maintenant, nous allons configurer quelques variables et définir un nom entier option_index = 0; Parce que chacun des arguments que nous allons fournir aura un numéro d'index afin que nous puissions alors l'itérer à travers tous les arguments. Nous le définissons ou l'initialisons à 0 pour arrêter l'avertissement car nous pourrions utiliser une variable non initialisée.
Puisque nous n'avons pas de type de données de chaîne en C, nous avons configuré un tableau de caractères pour '-u' pour prendre le nom d'utilisateur comme entrée et les initier avec une valeur nul.
Maintenant, nous allons entrer dans une boucle de temps, et cela nous permettra de lire tous les arguments si des options ont été définies. Comme pour les conditions, nous avons besoin de nos parenthèses pour les enfermer avec une véritable valeur qui, dans notre cas, est "Option_index = getOPT (Argc, Argv", Gu: ")". Nous utiliserons getOpt () pour considérer notre nombre d'arguments comme «argc» et lire dans notre tableau «argv» pour définir les options. De même, voici une option «GU:» et nous avons mis un côlon après le drapeau «u». Le ':' après la valeur du drapeau indique qu'il acquiert un argument. Cela n'a pas d'importance dans l'ordre que vous mettez les options, mais peu importe que vous mettiez un côlon après les options.
Maintenant, nous aurons une instruction Switch dans notre boucle While, et nous allons examiner la valeur stockée dans l'index de la variable "Option_index". Nous examinons chaque élément pour chaque cas.
Nous allons d'abord définir le cas où nous définissons «user_name = optarg». Les options peuvent être utilisées pour lire l'utilisateur que nous avons ajouté comme entrée lors de la saisie de «U». Nous devons également indiquer que nous en avons terminé avec ce cas, et nous le faisons dans le langage C en utilisant «Break» après chaque cas à la fin.
De même, nous utilisons le deuxième cas où si l'utilisateur saisit «G», il sera indiqué qu'il a sélectionné le groupe, et que nous rompons également cette déclaration.
Maintenant dans le dernier cas, nous l'utilisons pour toute autre option, ce qui peut être une erreur. Nous pouvons le ramasser avec `` par défaut: 'et nous pouvons passer et spécifier si l'option non valide est identifiée ou entrée. Nous afficherons des instructions d'impression avec «une option incorrecte».
Nous allons aussi faire un peu de diversité. Nous espérons que vous n'avez pas vu auparavant c'est la valeur de retour. Si nous mettons la valeur de retour à 1, nous laisserons la fonction principale. Notre programme rapportera une erreur, ce qui signifie que nous avons exécuté le programme incorrectement, donc nous ne voulons pas retourner 0, donc nous laissons le programme à son point.
Maintenant, nous avons déjà fermé tous les blocs et nous nous sommes assurés que nous sommes généralement revenus aux supports principaux. Le programme renvoie normalement la valeur 0 à la fonction principale. Nous avons maintenant réussi à contrôler les échecs par notre programme.
Voyons si notre programme fonctionne; Après avoir tapé le code suivant, nous aimerions que vous mettiez cette commande dans la ligne de commande. Nous avons utilisé GCC et sommes allés directement dans le code source 'Option_Program.C 'puis utilisé «-o» pour les options. Après cela, ça va être un argument, et ici «simple» est une sortie.
Après avoir exécuté notre 'gcc simple_option.C -o Simple -Wall ' Commande avec succès, maintenant nous passons et exécutons avec une option incorrecte qui est «-h». L'utilisation de «-h» en tant qu'option nous donnera une erreur car nous avons envoyé une option incorrecte. Nous pouvons également utiliser les deux arguments ensemble, obtenant le résultat en conséquence.
Ici, nous pouvons voir si nous voulons savoir comment notre dernier programme a été exécuté. Si vous tapez «Echo $?», Et s'il renvoie 0, cela signifie que le dernier programme a été exécuté avec succès, et s'il renvoie 1 comme vous pouvez le voir dans l'image ci-dessus, ce qui signifie que la dernière exécution du programme est échoué.
Conclusion:
Cet article visait à vous offrir une meilleure compréhension plus claire de la fonction getOPT () afin que vous puissiez améliorer la lisibilité de votre code et améliorer la réutilisabilité du code. Nous avons discuté d'un exemple simple avec la syntaxe. L'article vous aidera à obtenir facilement une connaissance et une compréhension très solides de la façon d'utiliser getOpt () en fonction. Différents arguments en tant que paramètres ont été discutés pour mieux utiliser la fonction.