2012-08-30 4 views
0

Je suis nouveau en C et Linux. Lors de l'exécution d'un programme compilé dans le terminal, comme:Ajouter une commande à un programme C sous Linux

./myProg --myCommand1 

alors myProg fera le travail en fonction de la commande « myCommand1 ». J'aimerais ajouter plusieurs commandes au myProg. Je ne suis pas sûr si char *argv[] peut être utilisé pour cela.

Merci.

+0

Il peut être utilisé pour cela. – Daniel

+0

Quels sont les exemples de "--myCommand1"? Un linux util comme ls ou un argument comme -c etc.? – squiguy

+2

En particulier, ils sont connus comme ** arguments de ligne de commande **. – chrisaycock

Répondre

2

Il peut être utilisé. argv[1] est la première commande, argv[2] est la deuxième, etc.

+0

Eh bien, je pensais que ça aurait commencé avec 0. Merci je ne savais pas! – Pacane

+4

@Pacane 'argv [0]' est le nom de votre programme. – chrisaycock

1

La plupart des programmes de ligne de commande Linux analysent leurs arguments avec une routine de niveau C appelée getopt(). Il a quelques avantages à marcher simplement sur le tableau argv[], il va gérer les réarrangements d'arguments, les drapeaux courts et longs, les messages d'aide, les instructions d'utilisation et un certain nombre d'éléments généralement pris pour acquis dans un programme en ligne de commande. Je vous suggère fortement de prendre un jour ou plus pour en apprendre davantage. Bien qu'il soit facile d'ajouter un argument à un programme utilisant getopt, écrire le code qui fait quelque chose si l'argument est défini peut être très facile, ou très très dur, selon ce que vous envisagez de faire, à quel point votre vision est détaillée, et à quel point vos détails sont à mettre en œuvre par un programme informatique. un moyen facile

+1

Bien que 'man optarg' vous amène au bon endroit, je pense que vous voulez dire que la plupart des programmes analysent leurs arguments en utilisant' getopt() '. – mah

+0

Bon point, mise à jour –

3

contrôle GNU getopt pour analyser les arguments cmdline

Questions connexes