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

Опубликовано: 2022-04-29

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

Значения, которые передаются внутри функции при ее вызове, называются аргументами. Другими словами, аргумент — это параметр, который передается данному методу при вызове.

Синтаксис :

int main() { /* … */ }

Приведенный выше код получает команду и передает ее операционной системе компьютера для запуска. Эти команды всегда вызываются при выполнении кода.

Аргументы командной строки CC и C++ довольно легко реализовать из-за их простоты и легко поддающегося расшифровке синтаксиса.

Чтобы передать аргументы командной строки, основная функция должна быть определена двумя аргументами:

  1. Общее количество аргументов командной строки
  2. Весь список аргументов командной строки

Синтаксис :

int main(int argc, char *argv[]) { /* … */ }

  1. argc (ARGument Count) определяется как целочисленный тип данных, в котором хранится общее количество аргументов командной строки. Понятно, что это всегда должно быть неотрицательное значение.
  2. argv (вектор ARGument) обозначает массив указателей символьного типа данных, используемый для хранения всего списка аргументов командной строки.

С помощью командной строки разработчики могут получить доступ к ряду файлов и папок на своих компьютерах. Определенная программа, которая содержит несколько аргументов командной строки, может быстро идентифицировать источники или назначения данных данных. Это также может изменить функционирование программы. Это упрощает процесс сборки для управления исходным кодом.

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

Изучите онлайн-курсы по разработке программного обеспечения от лучших университетов мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Оглавление

Недвижимость | Аргументы командной строки в C

Аргументы командной строки имеют довольно много интересных и полезных свойств. Они следующие:

  • Чтобы напечатать имя программы, команда должна быть argv[0]
  • argv[argc] по сути является нулевым указателем
  • Чтобы напечатать первый аргумент, предоставленный пользователем, команда должна быть argv[1]
  • Пользователь передает аргументы командной строки из терминала
  • Эти команды используются для управления программами извне, вместо того, чтобы жестко кодировать значения внутри программы.
  • Аргументы командной строки всегда передаются в функцию main().
  • Первый аргумент команды — argv[1], а последний — argv[n].

Пример аргумента командной строки

Ниже приведена демонстрационная программа для аргументов командной строки на C:

// Программа C для иллюстрации

// аргументы командной строки

#include<stdio.h>

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

{

внутренний счетчик;

printf("Имя программы: %s",argv[0]);

если (аргумент == 1)

printf("\nНе передан дополнительный аргумент командной строки, кроме имени программы");

если (аргумент >= 2)

{

printf("\nКоличество переданных аргументов: %d",argc);

printf("\n—-Передаются следующие аргументы командной строки—-");

for(счетчик=0;счетчик<argc;счетчик++)

printf("\nargv[%d]: %s",counter,argv[counter]);

}

вернуть 0;

}

Выход отличается в зависимости от различных сценариев. Они были дополнительно объяснены индивидуально.

  1. Без аргумента:

Чтобы получить следующий вывод, код должен выполняться без передачи аргумента:

Выход 1

$ ./a.out

Имя программы: ./a.out

Дополнительный аргумент командной строки не передается, кроме имени программы

  • С тремя аргументами:

Чтобы получить следующий вывод, код должен быть выполнен с тремя аргументами.

Выход 2 –

$ ./a.out Первый Второй Третий

Имя программы: ./a.out

Количество переданных аргументов: 4

--- Следующие аргументы командной строки передаются ---

argv[0]: ./a.out

argv[1]: Первый

argv[2]: Второй

argv[3]: Третий

  • С одним аргументом:

Код должен быть скомпилирован и выполнен с одним аргументом, который должен быть разделен пробелом и заключен в кавычки, чтобы получить следующий результат.

Выход 3 –

$ ./a.out «Первый Второй Третий».

Имя программы: ./a.out

Количество переданных аргументов: 2

--- Следующие аргументы командной строки передаются ---

argv[0]: ./a.out

argv[1]: Первый Второй Третий

  • С одним аргументом в кавычках и через пробел:

Код должен быть скомпилирован и выполнен с одним аргументом, разделенным пробелом, но в одинарных кавычках, чтобы получить следующий результат.

Выход 4 –

$ ./a.out 'Первый Второй Третий'

Имя программы: ./a.out

Количество переданных аргументов: 2

--- Следующие аргументы командной строки передаются ---

argv[0]: ./a.out

argv[1]: Первый Второй Третий

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

Есть несколько преимуществ использования аргументов командной строки в C. Они заключаются в следующем:

  • Аргументы командной строки в C могут использоваться, когда программист или пользователь хочет передать значения программе изнутри, а не делать это внутри.
  • Приложения командной строки можно очень легко настроить для использования в пакетных файлах или сценариях. Это очень помогает, когда речь идет об автоматическом тестировании или сборке.
  • Командную строку легче разрабатывать, если программисты пишут инструменты, а не используют их. Ввод аргументов считается гораздо более сложной и трудоемкой задачей, чем вывод текстового потока.
  • Потоки ввода, вывода и ошибок можно очень легко перенаправить, если информация может быть отправлена ​​или получена из различных файлов и приложений.
  • Механизм возврата ошибки в аргументах командной строки вполне стандартный и простой.
  • Когда программист или пользователь пытается получить доступ из дома или в дороге, в основном будучи мобильным, использование удаленных оболочек или других подобных соединений как минимум упрощает выполнение задач.
  • Для функции указания нескольких файлов присутствуют определенные стандарты синтаксиса с подстановочными знаками, которые опираются на существующие знания разработчика или программиста.
  • Командные строки убедительны и чрезвычайно быстры.

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

#include <stdio.h>

#include <conio.h>

//вызывается основной метод, которому передаются аргументы командной строки в программу

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

{

// определена целочисленная переменная

в а;

//если условие применяется для проверки того, что количество аргументов, переданных программе, больше или равно двум, и если условие истинно, аргументы командной строки, переданные программе, печатаются. В противном случае в программу не передается аргумент.

если (аргумент >= 2)

{

printf("Аргументы, переданные программе:\n");

for(a = 1; a < argc; a++)

{

printf("Аргумент, переданный программе: %s\t", argv[a]);

}

}

еще

{

printf("Программе не переданы аргументы\n");

}

вернуть 0;

}

Выход:

В программу не передаются никакие аргументы.

Аргументы командной строки передаются программе в коде, упомянутом выше, путем вызова основного метода. Следующим шагом является определение целочисленной переменной. Затем передается условие, чтобы проверить, больше или равно ли количество аргументов, переданных программе, 2. Аргументы командной строки, переданные программе, печатаются, если условие истинно. Если нет, то в программу не передаются никакие аргументы и они не печатаются.

Выводы

Узнайте больше о важности аргументов командной строки в C и C++, подписавшись на программу upGrad Executive PG в разработке программного обеспечения — специализация в разработке полного стека . 13-месячный курс предназначен для того, чтобы помочь начинающим ИТ-специалистам освоить Java, Spring, Hibernate, HTML, React, Git и ряд других языков программирования и инструментов для создания сложных приложений, таких как Quora и Swiggy.

Программа также предлагает бесплатную 4-месячную сертификацию для руководителей в области науки о данных и машинного обучения.

С какими основными недостатками приходится сталкиваться программистам при реализации аргументов командной строки на C?

Несмотря на то, что аргументы командной строки в C удобны для разработчиков и программистов, у них есть несколько недостатков. Людям, не имеющим базовых знаний и не привыкшим работать с этими командами, может оказаться довольно сложно научиться и адаптироваться к ним, особенно за короткий период времени. Однако это не проблема для опытных программистов и разработчиков. Но иногда это оказывается препятствием для младших сотрудников, которые могут быть из разных или смежных областей. Кроме того, для реализации и выполнения аргументов командной строки требуется клавиатура. Это часто становится препятствием, если кому-то нужно получить к нему доступ через свой телефон или iPad и т. д.

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

Для разделения аргументов командной строки обычно используются пробелы. Они отделяют имя команды от ее параметров и отделяют различные параметры друг от друга. Они также пригодятся при разделении списка различных значений. Множественные бланки обычно рассматриваются как один бланк. Единственным исключением из этого правила является строка в кавычках или комментарий, заключенный в одинарные кавычки.

Можно ли преобразовать аргументы командной строки?

Все аргументы командной строки передаются в виде строки. Числовые значения всегда должны быть преобразованы программистами или пользователями в их внутренние формы вручную. Основная функция всегда получает свои параметры, которые обычно представляют собой массив строк. Это единственный аргумент функции, который принимает основная функция. Строковые типы данных предназначены для использования при хранении аргументов командной строки.