Какова лучшая практика для создания инструмента командной строки unix / linux в C / C ++?

В настоящее время мне поручено создать некоторые вспомогательные утилиты командной строки для нашей внутренней команды разработчиков. Тем не менее, я хочу знать, как лучше всего создавать инструменты командной строки Unix. Я пробовал просмотрgit source code для примера того, как читать параметры и отображать сообщения соответственно. Однако я'ищу четкий шаблон для создания инструмента, безопасного чтения параметров и отображения стандарта »Помогите" сообщения, если пользователь вводит неверный параметр или--help Я хочу показать сообщение помощи. Есть ли стандартная библиотека для чтения-abcFGH а также--parameter и переключение, какой процесс начинается на основе переданного параметра?

Командная строка:

git

или же

git --help

Выход:

usage: git [--version] [--exec-path[=]] [--html-path] [--man-path] [--info-path]
       [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
       [--git-dir=] [--work-tree=] [--namespace=]
       [-c name=value] [--help]
        []
...

Командная строка:

MyTool CommandName --CommandArgs

Выход:

Что бы ни делала эта конкретная команда.

Над чем я работаю до сих пор:

Код:

int main(int argc, char **argv)
{
    if(argc < 2)
    helpMessage();
    char* commandParameter = argv[1];
    if (strncmp(argv [1],"help", strlen(commandParameter)) == 0)
        helpMessage();
    else if (strncmp(argv [1],"pull", strlen(commandParameter)) == 0)
        pull();
    else
        helpMessage();
}

То, что было бы идеально, выглядело бы так:

Код:

int main(int argc, char **argv)
{
    MagicParameters magicParameters = new MagicParameters(argv);
    switch(magicParameters[1])
    {
        case command1:
            Command1();
            break;
        case ...

        case help:
        default:
            HelpMessage();
            break;
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос