Обязательные опции с getopt_long () в C - PullRequest
5 голосов
/ 12 января 2011

В C / C ++ getopt_long() может использоваться для анализа аргументов командной строки. Можно ли сказать функции, что некоторые опции являются обязательными? Например, как я могу сказать getopt_long, что синтаксический анализ должен давать ошибку, если вызывается startServer без указания порта ниже?

./startServer -port 80

Примечание. Я говорю не об обязательных аргументах, а о самих параметрах.

1 Ответ

5 голосов
/ 12 января 2011

getopt_long() не является частью языка Си.Это изобретение GNU, которое доступно в некоторых реализациях C, но далеко не во всех.

Версия getopt_long() в glibc (используется в большинстве дистрибутивов Linux) не позволяет указывать, что опция является обязательной,Вы должны будете проверить их явно после того, как закончите анализ командной строки.

...