Je cherche un exemple de code en C qui lit les arguments de la ligne de commande Lua. Toute aide?Aidez-vous à localiser le code de l'échantillon C pour lire les arguments de la ligne de commande lua
Répondre
L'interpréteur Lua est conçu pour être intégré dans une application d'hébergement. Il est de la responsabilité de cette application de transmettre les arguments de la ligne de commande (ou l'équivalent de l'application) au script par un mécanisme approprié.
Lorsqu'il est utilisé en tant que langage autonome, l'application d'hébergement est l'exécutable lua
, implémenté par lua.c
dans la distribution source Lua. Quand il commence, lua
regroupe tous les arguments de ligne de commande dans la variable globale arg
sous la forme d'un tableau. arg[0]
contient le nom du fichier de script en cours d'exécution, et arg[1]
et plus tard contiennent tous les arguments passés à ce script sur la ligne de commande. Il stocke également le solde de la ligne de commande à des indices négatifs dans le tableau arg
. Pour la commande lua sample.lua a b c
alors le tableau est construit comme si la cession
arg = { [-1]="lua", [0]="sample.lua", "a", "b", "c" }
a été réalisée avant que le script est exécuté. Cette affectation est effectuée par la fonction getargs()
, qui laisse également les arguments de script sur la pile Lua afin que le script puisse également y accéder en tant qu'arguments variés de la fonction de niveau supérieur du script via le mot clé ...
.
Si un module utilisé à partir d'un script doit accéder aux arguments de la ligne de commande, il le fera probablement à partir de la table globale arg
. Cela permettrait de savoir si le module a été écrit en C ou Lua. L'accès à l'environnement global arg
nécessite que l'environnement du module n'ait pas été modifié pour empêcher l'accès aux globals.
J'ai laissé ouverte la question importante de conception globale de savoir si c'est une bonne conception pour permettre à un module de dépendre des arguments de la ligne de commande. Je peux voir qu'un module qui fournit l'analyse des arguments pourrait vouloir faire les choses de cette façon, mais même alors, je recommanderais que l'analyseur d'option soit passé les arguments par son appelant plutôt que de les lire directement depuis le global. Cela facilite la récupération des arguments d'une variable d'environnement ou d'un fichier de configuration, par exemple.
- 1. Marqueur de fin pour les arguments de ligne de commande
- 2. Haskell: lire plusieurs arguments de ligne de commande
- 3. Arguments de la ligne de commande WinMain
- 4. Accéder aux arguments de la ligne de commande dans C
- 5. Rediriger les arguments de ligne de commande pour l'amorçage
- 6. Exécuter le script PowerShell à partir de C# avec les arguments de la ligne de commande
- 7. arguments de ligne de commande
- 8. Arguments de la ligne de commande - PHP
- 9. arguments de ligne de commande
- 10. Arguments de ligne de commande de diffusion?
- 11. Lit les arguments de la ligne de commande depuis DrRacket
- 12. arguments de ligne de commande dans Powershell
- 13. Arguments de ligne de commande d'un exe
- 14. Arguments de ligne de commande dans XCode
- 15. QtCreator et arguments de ligne de commande
- 16. Arguments de la ligne de commande de Symbian Adobe Reader
- 17. Arguments de ligne de commande Java
- 18. Lire le code lua-like en php
- 19. passer les arguments de la ligne de commande à un processus enfant et les compter
- 20. espace dans les arguments de ligne de commande Java
- 21. où les arguments de ligne de commande sont stockés?
- 22. Ignorer les arguments de ligne de commande inconnus
- 23. Comment obtenir les arguments de la ligne de commande IE8 à partir du module complémentaire
- 24. Comment gérer les arguments de ligne de commande dans PowerShell
- 25. fichiers batch commande arguments de ligne
- 26. Ligne de commande dans le code R
- 27. Arguments de ligne de commande à saisie semi-automatique
- 28. Impossible d'extraire correctement les arguments de la ligne de commande dans C#
- 29. Problème d'analyse des arguments de la ligne de commande contenant le caractère '&' en C# .Net
- 30. Python: arguments d'entrée et de ligne de commande
... et c'est ce que font les programmeurs. –