Анализатор командной строки C для обработки комментариев

У меня есть tool, который берет input и делает output:

$ tool input > output

Я хотел бы добавить опцию, которая представляет собой длинную строку — скажем, опцию «комментарий». Этот текст комментария является аргументом опции и представляет собой предложение, заключенное в галочки вперед:

$ tool --comment='I am commenting on the use of comments' input > output_plus_comment

Это отличается от обычной пары "ключ-значение" --foo=bar, где foo — это имя параметра, а bar — значение, состоящее из одного слова (например, true, red, ...).

Есть ли хорошая библиотека анализатора командной строки для C, которая обрабатывает этот конкретный случай?


person Alex Reynolds    schedule 05.10.2012    source источник
comment
Да, getopt. Он должен работать буквально с предоставленной вами командной строкой.   -  person Kerrek SB    schedule 05.10.2012
comment
Может быть у вас есть примеры того, как это делается? Документация для этого случая кажется немного изношенной: gnu.org/ software/libc/manual/html_node/Using-Getopt.html   -  person Alex Reynolds    schedule 05.10.2012
comment
В сети есть миллионы примеров getopt. Есть ли что-то, с чем у вас проблемы? (Я предполагаю, что вы уже обнаружили getopt_long для опций с двойным тире.)   -  person Kerrek SB    schedule 05.10.2012


Ответы (1)


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

Просто поместите кавычки вокруг строк, содержащих пробелы, или экранируйте пробелы с обратной косой чертой в вашей командной строке, и ваше значение --foo может содержать столько пробелов, сколько вам нужно.

person Kerrek SB    schedule 05.10.2012