Lorsque je lance un binary exécutable, comment appelle-t-on la commande?

Quand je tape ce qui suit dans le terminal

./a.out 

Quel est le nom de la commande que j’utilise? Je ne sais pas comment rechercher des options de ligne de commande pour cette situation car je ne sais pas quoi chercher réellement.

Le nom de fichier par défaut pour un programme C compilé est a.out. Chaque programme parsing ses propres arguments, il n’y a donc pas de liste canonique des arguments. Puisque vous avez le a.out, vous avez probablement le code source du programme. Trouvez la fonction nommée “main” et recherchez le code qui examine argv ou les appels getopt, et peut-être quelqu’un aura-t-il fourni une fonction (nommée aide ou utilisation) qui affiche une aide rapide du programme.

Une autre approche serait d’exécuter le programme avec ‘-q’ ou ‘?’ arguments.

Une autre approche consisterait à utiliser des chaînes pour trouver des chaînes imprimables dans le fichier exécutable.

 ssortingngs a.out |less 

Les pages de manuel sont écrites séparément du code, il se peut donc qu’il n’y ait pas de pages de manuel pour votre exécutable.

./ est un emplacement, pas une commande. Le . représente le répertoire en cours. Le / est le séparateur de répertoire. a.out est un fichier (probablement un fichier exécutable) dans le répertoire en cours. C’est le nom par défaut d’un exécutable compilé construit par gcc .

Vous utilisez généralement cette méthode d’invocation explicite car . ne fait généralement pas partie du chemin de recherche. Donc, si vous avez essayé d’exécuter a.out sans le préfixe ./ , le système ne pourrait pas le trouver même si vous vous trouvez dans le répertoire en cours. C’est une mesure de sécurité (pour vous empêcher de lancer involontairement un programme malveillant lorsque vous pensiez exécuter autre chose), et c’est une bonne chose .

a.out est le nom par défaut d’un programme ‘c’ qui a été compilé sans lui donner de nom. Les programmes sont généralement compilés avec un paramètre -ofilename

voir Détermination du nom de l’exécutable C

La commande peut ne pas avoir de documentation sur ses options. Si c’est un binary précompilé, vous pouvez avoir très peu de recours pour savoir quelles sont ses options, le cas échéant. Vous pouvez essayer de le structurer pour trouver des indices, mais rien ne garantit que le programme ait une page de manuel ou une sorte de sortie --help .

 ./a.out 

est à lui seul une commande. Essayons de comprendre à ce sujet.

La commande est fondamentalement un élément exécutable. Il peut s’agir d’un script binary ou même d’un script shell. Dans votre cas, a.out est un élément binary exécutable. Pour les options de ligne de commande de a.out, veuillez vous référer aux parameters “argv” , “argc” dans la fonction main () du code source qui est compilé et lié pour obtenir a.out.

En savoir plus en visitant les arguments du programme

Détails du bonus sur l’exécution du commandement:

Pour qu’un shell exécute la commande, il existe deux méthodes bien connues.

Méthode 1:


Fournissez explicitement le chemin de l’exécutable avec le nom de la commande.

Exemple 1: Pour exécuter des commandes dans le répertoire de travail en cours en fournissant explicitement le chemin:

 ./a.out 

. ‘[point] signifie répertoire courant.

Exemple 2: Pour exécuter des commandes n’importe où depuis n’importe où en fournissant explicitement le chemin

 /home/username/a.out 

Méthode 2:


Mettez à jour la variable d’environnement shell PATH pour inclure le chemin de la commande à exécuter.

Type: env | grep -i “PATH” pour connaître les emplacements actuellement recherchés pour une commande à exécuter si seul le nom de la commande est fourni.

Si vous mettez à jour la variable d’environnement du shell PATH pour contenir l’emplacement de votre a.out, vous pouvez simplement taper:

 a.out 

Tapez la commande ci-dessous pour mettre à jour la variable d’environnement du shell PATH

 export PATH=$PATH:/path-to-executable 

Vous avez peut-être remarqué ce style.

Vous auriez seulement tapé “rm” et le shell est toujours capable d’exécuter la commande. La raison en est que le chemin de la commande est implicite et trouvé sur la lecture de la variable d’environnement shell “PATH”.

Pour exécuter des commandes générées par l’utilisateur, alors que l’exemple 2 de la méthode 1 est suffisant dans la plupart des cas, vous trouvez toujours la méthode 2 utile aux endroits où vous utilisez la commande de manière extensive, jour après jour.