2013-08-01 2 views
0

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

Любые ресурсы будут оценены.

+0

Возможно, вам понравился 'man 3 getopt'. Семейство функций 'getopt *()' обеспечивает удобный способ реализации и анализа параметров командной строки, таких как '-h'. – alk

ответ

4

в C, ваша основная процедура, как правило, записывается в виде:

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

Это argv массив аргументы (argv[0] это имя команды, вы запускали), так что вы можете просто проверить if(argc > 1 && !strcmp(argv[1], "-h")), чтобы увидеть, если вы работают как -h (и просто используйте printf для печати на терминал).

Если вы хотите использовать более подходящую библиотеку анализа аргументов, посмотрите на getopt (https://www.gnu.org/software/libc/manual/html_node/Example-of-Getopt.html). Версия GNU (которая используется для большинства дистрибутивов Linux) также имеет функции для длинных аргументов (обработка -h и --help)

+1

Функции 'argp' также находятся в Glibc и могут быть проще в использовании, см. [Здесь] (https://www.gnu.org/software/libc/manual/html_node/Argp.html) –

0

Nirk дал наилучший ответ, который вы можете разумно ожидать. Вы задаете здесь довольно широкий вопрос. Я бы добавил, что вы должны скачать источник GNU Core Utils и пробраться через код как можно лучше. Большинство из этих служебных программ командной строки тратят 75% кода на сбор, группировку, обработку, проверку и т. Д., Аргументы командной строки! Выбирайте программу с несколькими простыми опциями, потому что сложные из них будут взорвать верхнюю часть головы в течение как минимум нескольких часов.

Смежные вопросы