Да, это в основном все, argv[1]
- второй параметр командной строки.Первый параметр командной строки - это имя самой программы.
В качестве альтернативы, чтобы избежать семантического беспорядка, который изначально имел этот ответ, и комментариев от других, может иметь смысл назвать argv [0] как *Параметр 1004 * zeroth , так что argv[1]
теперь будет «первым» из введенных пользователем значений.
В любом случае это происходит из семейства функций exec()
, например execl
который использует:
int execl(const char *path, const char *arg0, ... /*, (char *)0 */);
В оболочке (Unix) при вводе команды, если необходимо, оболочка сначала разрешает имя команды (используя $PATH
), чтобы найти реальный абсолютный путь.(Абсолютный или относительный) путь указывается для path
, а команда, введенная изначально, указывается как arg0
, в конечном итоге в вашей программе она становится argv[0]
.
Осталось параметры командной строки затем заканчиваются на argv[1]
и т. Д.