• Библиотека может анализировать синтаксис аргументов многих типов, не требуя для этого дополнительного кода в приложении.

• Она предлагает стандартный метод использования псевдонимов параметров. Программы, использующие библиотеку popt, могут позволить пользователям добавлять новые параметры командной строки, которые будут определяться как комбинации уже существующих параметров. Благодаря этому пользователь может определять новое сложное поведение или изменять поведение существующих параметров, принятое по умолчанию.

• Благодаря особому механизму библиотеки могут анализировать синтаксис одних параметров в тот момент, когда главное приложение анализирует синтаксис других параметров.

• Она может автоматически генерировать сообщение об использовании, в котором будут перечислены параметры, воспринимаемые программой, а также более подробное справочное сообщение.

• Библиотека может генерировать обычные сообщения об ошибках.

Подобно функции getoptlong(), библиотека popt поддерживает короткие и длинные параметры.

Библиотека popt является в высшей степени доступной и может работать на любой POSIX-платформе. Самую последнюю версию библиотеки можно найти по адресу ftp://ftp.rpm.org/pub/rpm. Библиотека popt обладает целым рядом функциональных возможностей, не упоминаемых в этой главе; их описание можно найти на man-странице для popt.

Библиотека popt может распространяться либо под лицензией General Public License GNU, либо под лицензией Library General Public License GNU.

26.1. Таблица параметров

26.1.1. Определение параметров

Приложения передают библиотеке popt информацию о своих параметрах командной строки через массив структур struct poptOption.

#include <popt.h>

struct poptOption {

 const char * longName; /* может иметь значение NULL */

 char shortName;        /* может иметь значение '' */

 int argInfo;

 void * arg;            /* зависит от argInfo */

 int val;               /*0 означает не возвращаться, а просто обновить флаг*/

 char * descrip;        /* необязательное описание параметра */

 char * argDescrip;     /* необязательное описание аргумента */

};

Каждый элемент таблицы определяет один параметр, который может быть передан программе. Длинные и короткие параметры рассматриваются как один параметр, который может встречаться в двух различных формах. Первые два элемента, longName и shortName, определяют имена параметров; первый соответствует длинному имени, а второй — одиночный символ.

Элемент argInfo сообщает библиотеке popt о том, какой тип аргумента ожидается после параметра. Если не ожидается никакого параметра, будет использоваться значение РОPT_ARG_NONE. Остальные допустимые значения перечислены в табл. 26.1[182].

Таблица 26.1. Типы аргументов popt

Значение Описание Тип arg
POPT_ARG_NONE He ожидается ни одного аргумента. int
POPT_ARG_STRING Не должна выполняться проверка соответствия типов. char *
POPT_ARG_INT Ожидается целочисленный аргумент. int
POPT_ARG_LONG Ожидается длинный целочисленный тип. long
POPT_ARG_FLOAT Ожидается тип с плавающей точкой. float
POPT_ARG_DOUBLE Ожидается тип с плавающей точкой двойной точности. double
POPT_ARG_VAL Не ожидается ни одного аргумента (см. текст). int

Следующий элемент, arg, позволяет библиотеке popt обновлять переменные в программе автоматически в случае использования параметра. Если arg имеет

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату