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

Многие Linux-программы позволяют задавать параметры командной строки. Эти параметры выполняют самые разнообразные функции, однако имеют практически одинаковую синтаксическую структуру. Короткие параметры состоят из символа -, за которым следует один алфавитно-цифровой символ. Длинные параметры, обычные для утилит GNU, состоят из пары символов --, за которыми следует строка, состоящая из букв, цифр и дефисов. После любого из этих параметров может стоять аргумент. Пробел отделяет короткий параметр от его аргументов, а пробел или знак равенства отделяют длинный параметр от аргумента.

Проверить синтаксис параметров командной строки можно многими способами. Наиболее популярным методом является проверка синтаксиса массива argv, выполняемая вручную. Помочь в проверке синтаксиса параметров могут библиотечные функции getopt() и getoptlong(). Функция getopt() присутствует во многих реализациях Unix, однако она поддерживает только короткие параметры. Функция getoptlong() доступна в Linux и позволяет автоматически анализировать синтаксис коротких и длинных параметров[181].

Библиотека popt предназначена специально для синтаксического анализа параметров. По сравнению с функциями getopt() она обладает некоторыми преимуществами.

• В ней не используются глобальные переменные, что позволяет применять ее при многократных проходах, необходимых для синтаксического анализа argv.

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

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

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

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

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

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

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

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

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

<p>26.1. Таблица параметров</p><p>26.1.1. Определение параметров</p>

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

#include

struct poptOption {

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

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

 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

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

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

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

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

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

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

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

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

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

Все жанры