Обработка аргументов командной строки C

Readv на C Программирование и разработка

Язык программирования C предоставляет нам возможность передавать аргументы командной строки в Linux. Эта статья расскажет вам больше об этой концепции, обсудив, как аргументы командной строки обрабатываются в C. Более того, мы рассмотрим подходящий пример, который, возможно, устранит все ваши двусмысленности в отношении указанной концепции.

Использование аргументов командной строки в C

Как мы уже говорили, аргументы командной строки в C используются для предоставления значений вашей программе во время ее выполнения. Эти аргументы указываются с помощью функции main () вашего кода C следующим образом:

int main (int argc, char* argv[])

Теперь мы обсудим эти два недавно введенных параметра функции main () один за другим. Первый параметр, то есть argc, нужен для отслеживания количества предоставленных аргументов времени выполнения. Это означает «количество аргументов». Однако здесь важно отметить, что первым аргументом всегда является «имя программы» по умолчанию. Таким образом, значение этого счетчика всегда на «1» больше, чем количество аргументов командной строки, предоставленных во время выполнения.

Переходим ко второму параметру, то есть char * argv []. Этот массив символов содержит все аргументы, которые вы предоставляете во время выполнения, а также имя вашей программы. Опять же, «0-й» индекс этого массива символов, т.е. argv [0] будет соответствовать имени вашей программы, а последующие индексы этого массива будут хранить все те аргументы командной строки, которые вы предоставите во время выполнения.

Теперь мы рассмотрим пример использования аргументов командной строки на языке программирования C в Linux.

Пример использования аргументов командной строки в C

В этом примере мы просто увидим, как мы можем передавать аргументы командной строки во время выполнения через терминал в C. У нас есть файл C с именем «CLA.c». В этом файле мы определили код C как нашу функцию «main ()» после импорта необходимой библиотеки. Наша функция main () на этот раз отличается от обычной функции main (), поскольку она параметризована. Он состоит из параметров «argc» и «argv []», детали которых мы уже объяснили выше.

Читайте также:  10 лучших навыков DevOps-инженера

Он состоит из параметров «argc» и «argv []», детали которых мы уже объяснили выше

В теле нашей функции «main ()» мы сначала напечатали значение параметра «argc», которое даст нам общее количество предоставленных аргументов во время выполнения. Опять же, это количество аргументов будет на «1» больше, чем фактическое количество предоставленных аргументов. Например, если вы предоставите два аргумента во время выполнения, тогда это количество аргументов будет равно трем. После этого у нас есть цикл for, который перебирает индексы массива argv []. В этом цикле мы намерены распечатать значения аргументов, предоставленных через командную строку во время выполнения.

После того, как мы сохранили наш код C, мы создали его объектный файл с помощью команды, показанной ниже:

$ gcc CLA.c –o CLA

После успешной компиляции нашего кода мы можем эффективно его выполнить. Теперь пришло время предоставить аргументы командной строки при запуске нашего кода следующим образом:

$ ./CLA String1 String2 String3 …

После имени вашего объектного файла вы можете указать любое количество строковых аргументов. Мы сделали то же самое, как вы можете видеть на следующем изображении:

После выполнения нашего кода C вы сначала увидите количество аргументов командной строки, которое в нашем случае было «5», поскольку мы предоставили четыре аргумента командной строки. После этого содержимое массива «argv []» отобразится на терминале. Первый индекс будет ссылаться на имя файла, за которым следуют другие индексы, которые будут содержать значения предоставленных аргументов командной строки, которые в данном случае были строками.

Теперь мы запустим нашу ту же программу на C

Теперь мы запустим нашу ту же программу на C с другим набором аргументов командной строки, чтобы прояснить этот момент, что необязательно предоставлять строковые аргументы только в качестве аргументов командной строки. На этот раз мы выполнили нашу программу с целочисленными значениями, как показано ниже:

$ ./CLA Integer1 Integer2 Integer3 …

После имени вашего объектного файла вы можете указать любое количество целочисленных аргументов. Мы сделали то же самое, как вы можете видеть на следующем изображении:

После выполнения нашего кода C вы сначала увидите количество аргументов командной строки, которое снова было «5», поскольку мы предоставили четыре аргумента командной строки. После этого содержимое массива «argv []» отобразится на терминале. Первый индекс будет ссылаться на имя файла, за которым следуют другие индексы, которые будут содержать значения предоставленных аргументов командной строки, которые в данном случае были целыми числами.

После выполнения нашего кода C вы сначала увидите количество аргументов

Заключение

Это руководство научило вас основам обработки аргументов командной строки на языке C. Глядя на пример, приведенный в этой статье, вы можете быстро понять концепцию передачи аргументов во время выполнения через терминал в Linux.

Оцените статью
bestprogrammer.ru
Добавить комментарий