182
Те, кто знаком с функцией getopt()
, заметят, что argInfo
является единственным обязательным членом структуры struct poptOption
, который отличается от члена в таблице аргументов getoptlong()
. Благодаря этому сходству существенно упрощается переход от getoptlong()
к popt
.
183
Полный исходный код для данного примера можно найти в главе 23.
184
Распространенной ошибкой является определение массива argv
как char **
, а не как const char **
, что является правильным вариантом. Благодаря прототипу функции poptGetContext()
компилятор генерирует предупреждающее сообщение, если массив argv
будет определен неправильно.
185
Он также добавляет параметр -?
, который соответствует --help
.
186
Макрос POPT_AUTOHELP
расширяется для включения вложенной таблицы параметров, определяющей новые параметры и обратный вызов, при котором реализуются эти параметры.
187
Часто в подобных случаях удобно использовать POPT_CONTEXT_KEEP_FIRST
.
188
Первоначально библиотека popt
была реализована для RPM, и многие параметры запросов RPM реализованы в виде простых макросов popt
.