Oui, c'est la plupart du temps, argv[1]
est le deuxième paramètre de ligne de commande. Le premier paramètre de ligne de commande est le nom du programme lui-même.
Sinon, pour éviter le désordre sémantique que cette réponse avait à l'origine, et les commentaires des autres, il peut être judicieux d'appeler argv [0] le paramètre zeroth, de sorte que argv[1]
serait désormais la « première » de les valeurs fournies par l'utilisateur.
Dans tous les cas, cela provient de la famille de fonctions exec()
, par ex. execl
qui a l'usage:
int execl(const char *path, const char *arg0, ... /*, (char *)0 */);
Dans le shell (Unix) lorsque vous tapez une commande, si nécessaire, le shell résout d'abord le nom de la commande (en utilisant $PATH
) pour trouver le chemin absolu réel. Le chemin (absolu ou relatif) est fourni pour path
et la commande telle que saisie à l'origine est fournie sous la forme arg0
, pour finalement devenir argv[0]
dans votre programme.
Le reste paramètres de ligne de commande de fin puis comme argv[1]
, etc.
Huh? Je ne suis pas sûr de ce que votre définition de «argument» est ici, mais je pense que c'est le premier argument, pas le second ... – Mehrdad
umm, oui, clarifié. – Alnitak