Параметры командной строки в программе C?

Как читать параметры командной строки в C? Например, в

./test --help 

или

 ./test --build 

как мне получить доступ к «–build» или «–help»?

Ваши параметры находятся в argv:

 int main(int argc, char **argv) 

если вы напечатаете содержимое argv (argv [0], argv [1] и т. д.), вы получите эту идею.

пытаться:

 int main (int argc, char **argv) { for(int i = 0;i< argc;i++) printf("%s\r\n",argv[i]); } 

Вы можете использовать argc и argv для main функции и делать на их основе разные вещи:

 #include  void dohelp(void) { /* whatever; */ } void dobuild(void) { /* whatever; */ } int main(int argc, char **argv) { if (argc == 2) { if (!strcmp(argv[1], "--help")) dohelp(); if (!strcmp(argv[1], "--build")) dobuild(); } return 0; } 

argc содержит количество параметров, переданных оболочкой вашей программе, включая имя программы. Итак, myapp --help получает argc из 2.

argv – сами аргументы. Последний argv ( argv[argc] ) является указателем NULL.


Изменить: параметры не нужно называть argc и argv , но называть другое что-то еще очень, очень плохо!

 int main(int foo, char **bar) /* RGAGGGGHH */ int main(int n, char **options) /* RGAGGGGHH */ 

Самым простым является использование аргументов (int argc, char *argv[]) и вы можете анализировать их напрямую.

Еще один расширенный метод – использовать getopt … http://www.gnu.org/s/libc/manual/html_node/Getopt.html

Есть несколько способов сделать это [как обычно]. Аргументы командной строки считываются из argv (передаются в main вместе с argc).

Вы можете проанализировать их самостоятельно и установить флаги установки битов каждый раз, когда в argv будет найден новый параметр. Или вы можете использовать библиотеку для аргументов командной строки парсера. Я предлагаю libc getopt (google it).

  • В объявлении функции C, что делает «...» как последний параметр?
  • использовать десятичные значения в качестве атрибутов params в c #?
  • Могу ли я создать представление с параметром в MySQL?
  • varargs и аргумент '...'
  • Передача только типа параметра в C #
  • Bash: манипуляция со строками (знак процента)
  • Получить все параметры со страницы JSP
  • В чем разница между «$ @» и «$ *» в Bash?
  • Опция GCC -fPIC
  • Почему аргумент шаблона не может быть выведен, если он используется в качестве параметра шаблона для другого шаблона?
  • Передача параметров в область видимого компонента в JSF
  • Interesting Posts

    Как Mac OSX уделяет приоритетное внимание сетевым интерфейсам при маршрутизации?

    Почему Windows7 просыпается после того, как я переспал?

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

    Разница между «Веб-сайтом» и «Проектом» в Visual Studio

    Где установить настройку по умолчанию из папки «/ sys» в Fedora 18?

    преобразование canvasа в bitmap в android

    Как избежать предупреждений о безопасности типа с результатами Hibernate HQL?

    Почему не удаляет указатель на NULL?

    Кто-нибудь действительно эффективно реализовал Fibonacci-Heap?

    JQuery Как извлечь значение из тега href?

    Vim: Как синхронизировать NERDTree с текущим открытым файлом пути к вкладке?

    Любой символ, включая новую строку – Java Regex

    Совместное использование одного и того же `ssh-agent` между несколькими сеансами входа в систему

    Возможно ли избежать метасимволов регулярных выражений с помощью sed

    Проверьте, найден ли элемент в массиве c ++

    Давайте будем гением компьютера.