Читаем Разработка приложений в среде Linux. Второе издание полностью

ЗначениеОписаниеТип arg
POPT_ARG_NONEHe ожидается ни одного аргумента.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 имеет значение NULL, то он будет проигнорирован, и popt не будет выполнять никаких действий. В противном случае он будет указывать на переменную, тип которой задан в правой колонке табл. 26.1.

Если параметр не принимает аргументов (argInfo имеет значение POPT_ARG_NONE), то переменная, на которую указывает arg, получает единичное значение при использовании параметра. Если параметр принимает аргумент, то значение переменной, на которую указывает arg, обновляется до значения аргумента. Аргументы POPT_ARG_STRING могут принимать любую строку, а аргументы POPT_ARG_INT, POPT_ARG_LONG, POPT_ARG_FLOAT и POPT_ARG_DOUBLE преобразуются в соответствующий тип, при этом, если преобразование не удастся выполнить, будет сгенерирована ошибка.

Если используется значение POPT_ARG_VAL, то никаких аргументов не ожидается. Вместо этого popt скопирует целочисленное значение val в адрес, на который указывает arg. Это будет полезно в том случае, когда в программе имеется набор взаимно исключающих аргументов, и выбор падает на последний указанный аргумент. Определяя различные значения val для каждого параметра, когда член arg каждого параметра будет указывать на одно и то же целочисленное значение, и, определяя для каждого из них значение POPT_ARG_VAL, можно легко узнать, какой из этих параметров был определен последним. Если будет задано более одного параметра, то сгенерировать ошибку не удастся.

Член val устанавливает значение, возвращаемое функцией проверки синтаксиса popt при обнаружении параметра, если только не используется значение POPT_ARG_VAL. Если значение будет равно нулю, функция проверки синтаксиса продолжит проверку следующего аргумента командной строки, и не будет возвращать результат.

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

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

Давайте посмотрим, как можно было бы определить таблицу параметров для обычного приложения. Ниже показана таблица параметров для простой версии утилиты grep[183].

const char * pattern = NULL;

int mode = MODE_REGEXP;

int ignoreCase = 0;

int maxCount = -1;

struct poptOption optionsTable[] = {

 { "extended-regexp", 'E', POPT_ARG_VAL, &mode, MODE_EXTENDED,

   "шаблоном для соответствия является расширенное регулярное выражение",

   NULL },

 { "fixed-strings", 'F', POPT_ARG_VAL, &mode, MODE_FIXED,

   "шаблоном для соответствия является базовая строка (не "

   "регулярное выражение)", NULL } ,

 { "basic-regexp", 'G', POPT_ARG_VAL, &mode, MODE_REGEXP,

   "шаблоном для соответствия является базовое регулярное выражение" },

 { "ignore-case", 'i', POPT_ARG_NONE, &ignoreCase, 0,

   "выполнять поиск, чувствительный к регистру", NULL },

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных