Помощники для анализа аргументов в C / Unix
Я знаю следующее:
Почтенныйgetopt(3)
Расширенныйgetopt_long
Glibc-хargp
парсер для векторов аргументов в стиле UnixPopt от проекта GNOME (или его духовного преемника вбойкий)Я уверен, что есть еще кое-что, что я не использовал или даже не слышал; быстрый поиск в Google показываетGopt, argtable, а такжеOptlist.
Лично мне нравитсяargp
лучше всего, и каждая программа, которую я написал, используяgetopt
/getopt_long
(за пределами определенного базового уровня сложности) был преобразован в использованиеargp
, Это более широко доступно, чемpopt
более мощный, чемgetopt_long
, хорошо документированный, совместимый со всеми соглашениями в стиле GNU, и очень гибкий. С другой стороны, его далеко не так просто использовать (благодаря его гибкости), а код для его поддержки довольно многословен (как и многие другие вещи в C).
Что вы используете и почему?
Да, я имею в виду C, а не C ++. Существует множество синтаксических анализаторов C ++, но я не использую C ++.
Джон Милликин отмечает, чтоpopt
больше не поддерживается. Я перечисляю это, потому что много программ все еще используют это - включая AbiWord, rpm, rsync и samba - несмотря на усилия Gnome помигрировать, Но теперь я добавил ссылку на парсер аргументов Глиба.
Для разбора аргументов C ++, смотрите вопросКакие библиотеки парсеров параметров существуют для C ++?