Как пользоваться аргументами argc , argv[] ,функции main - C (СИ)
Формулировка задачи:
И как запустить программу из консоли ? не совсем понимаю , как передать значения в эти аргументы.
Решение задачи: «Как пользоваться аргументами argc , argv[] ,функции main»
textual
Листинг программы
sh-4.2$ cat shit.c && clang shit.c && ./a.out 111 222 333 444 "ghj ghj ghj"
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char ** argv)
{
int i = 0;
char ** p = argv;
while (*p)
{
fprintf(stdout, "argc = %i\t", i++);
fprintf(stdout, "argv = %s\n", *p++);
}
exit(EXIT_SUCCESS);
}
argc = 0 argv = ./a.out
argc = 1 argv = 111
argc = 2 argv = 222
argc = 3 argv = 333
argc = 4 argv = 444
argc = 5 argv = ghj ghj ghj
sh-4.2$
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdio.h и stdlib.h.
- Определяется функция main, которая является точкой входа в программу. В качестве параметров функции main передаются значения argc (количество аргументов командной строки) и argv (массив указателей на аргументы командной строки).
- Внутри функции main инициализируются две переменные: i (счетчик для перебора аргументов) и p (указатель на первый элемент массива argv).
- Запускается цикл while, который выполняется до тех пор, пока не будет достигнут конец массива argv (т.е. пока не станет равно *p NULL).
- Внутри цикла while выводятся значения argc и argv на экран с помощью функции fprintf. Значение argc увеличивается на единицу после каждой итерации цикла, а значение argv заменяется на следующий элемент массива argv (т.е. на следующий аргумент командной строки).
- После завершения цикла while выполняется оператор exit с кодом EXIT_SUCCESS, что приводит к завершению работы программы.
- При запуске программы с помощью команды
./a.out 111 222 333 444ghj ghj ghj`` на экран будет выведено: argc = 0 argv = ./a.out argc = 1 argv = 111 argc = 2 argv = 222 argc = 3 argv = 333 argc = 4 argv = 444 argc = 5 argv = ghj ghj ghj