15.2.3. Обработка ошибок

Внутри цикла обработки опций можно вызвать poptBadOption для получения опции, которая оказалась "плохой", и poptStrerror для вывода сообщения, соответствующего данной ошибке.

В poptBadOption необходимо передать контекст и битовую маску флагов. Для указания отсутствия флагов передается 0, или POPT_BADOPTION_NOALIAS, который заставляет popt вернуть не значение, определенное в алиасах, а саму опцию. Для лучшего протоколирования ошибки в этом случае poptBadOption вернет опцию, максимально похожую на то, что ввел пользователь, если нет возможности вернуть в точности то, что он ввел.

Синтаксис:

char * poptBadOption(poptContext context, int flags);

Для получения стандартного сообщения о конкретной ошибке, в
poptStrerror нужно передать ее код:

const char * poptStrerror(const int error_code);

Скомбинировав возможности можно вывести ошибку и ее код, как показано в примере:

fprintf( stderr, "Error with option [%s]\n %s",

poptBadOption(context, POPT_BADOPTION_NOALIAS),

poptStrerror(error_code);

Для вывода стандартной помощи (сообщения об использовании) применяется функция poptPrintUsage:

void poptPrintUsage(poptContext context,

FILE *output,

int flags);

Эта функция выводит помощь, когда пользователь задал в командной строке неверные опции или не минимально достаточный их набор.

Далее - Работающий пример
Назад - Программирование с popt
Содержание