Разработка приложений в среде Linux - [194]
>109: { "max-count", 'm', POPT_ARG_INT, &maxCount, 0,
>110: "завершить после получения N совпадений", "N" },
>111: { "regexp", 'е', POPT_ARG_STRING, &pattern, 0,
>112: "регулярное выражение для поиска", "pattern" },
>113: POPT_AUTOHELP
>114: { NULL, ' \0', POPT_ARG_NONE, NULL, 0, NULL, NULL }
>115: };
Ниже показан пример того, как выглядит справочное сообщение, сгенерированное данной таблицей параметров.
>Usage: grep [OPTION...]
>Использование: grep [ПАРАМЕТРЫ...]
> -Е, --extended-regexp шаблоном для соответствия является
> расширенное регулярное выражение
> -F, --fixed-strings шаблоном для соответствия является
> базовая строка (не регулярное выражение)
> -G, --basic-regexp шаблоном для соответствия является базовое
> регулярное выражение
> -i, --ignore-case выполнять поиск, чувствительный к регистру
> -m, --max-count=N завершить после получения N совпадений
> -е, --regexp=pattern регулярное выражение для поиска
>Help options:
> -?, --help Show this help message
> --usage Display brief usage message
>Параметры справки:
> -?, --help Показать это сообщение
> --usage Отобразить краткое сообщение об использовании
Хотя эта информация и имеет привлекательный вид, она требует некоторых уточнений. В первой строке не сказано, что команда ожидает имена файлов в командной строке. Показанный здесь текст >[OPTION...]
принят в >popt
по умолчанию, и с помощью функции >poptSetOtherOptionHelp()
может быть изменен для получения более детального описания.
>#include
>poptSetOtherOptionHelp(poptContext con, const char * text);
Первым параметром является содержимое, а второй параметр определяет текст, который должен появиться после имени программы. Если добавить следующий вызов
>poptSetOtherOptionHelp(optCon, "<шаблон> <список файлов>");
то первая строка в справочном сообщении будет изменена на
>Usage: grep <шаблон> <список файлов>
>Использование: grep <шаблон> <список файлов>
что является более точным.
Последнее, что требуется уточнить в отношении справочных сообщений, это способ обработки вложенных таблиц. Давайте снова обратимся к справочному сообщению для нашей программы >grep
; для параметров справки выделяется отдельный раздел справочного сообщения. Если элемент >POPT_ARG_INCLUDE_TABLE
таблицы параметров содержит член >descrip
, то строка будет использоваться в качестве описания для всех параметров во вложенной таблице, и эти параметры будут отображаться в своем собственном разделе справочного сообщения (подобно параметрам справки для >tail
). Если >descrip
будет иметь значение >NULL
, то параметры для вложенной таблицы будут отображаться вместе с параметрами из главной таблицы, а не в своем собственном разделе.
Иногда программы предлагают параметры, которые, возможно, не должны использоваться; они могут быть включены для поддержки унаследованных приложений или приложений, разработанных только для тестирования. Автоматическая генерация справочных сообщений для такого параметра можно подавить с помощью битового "ИЛИ" >POPT_ARGFLAG_DOC_HIDDEN
и члена >arg
структуры >struct poptOption
, описывающей данный параметр.
26.3. Использование обратных вызовов
Мы показали два способа обработки параметров с помощью библиотеки >popt
: с помощью возврата параметра функцией >poptGetNextOpt()
и путем автоматического изменения переменных во время представления параметров. К сожалению, ни один из этих способов не подходит для вложенных таблиц. Очевидно, что возвращение параметров, определяемых во вложенной таблице для обработки в приложении, не будет работать, поскольку вложенные таблицы предназначены для того, чтобы приложению не нужно было знать, какие параметры предлагает библиотека. Присвоение переменным значений тоже не подходит, поскольку в этом случае не ясно, каким переменным нужно присваивать значения. Использование глобальных переменных часто тоже является неподходящим, а библиотека не имеет доступных для использования локальных переменных, поскольку синтаксический анализ выполняется из главного приложения, а не из библиотеки. Чтобы обеспечить гибкую обработку параметров во вложенных таблицах, библиотека >popt
предлагает использовать обратные вызовы (callback).
Каждая таблица может определять свою собственную функцию обратного вызова, которая подменяет обычную обработку параметров, определенных в этой таблице. Вместо нее функция обратного вызова вызывается для каждого обнаруживаемого параметра. Параметры, определяемые в других таблицах параметров (включая таблицы, вложенные в таблицу, определяющую обратный вызов), обрабатываются с использованием обычных правил, если только в других таблицах не будут определены свои собственные обратные вызовы.
Обратные вызовы можно определять только в первом элементе таблицы параметров. Если этот элемент определяет обратный вызов, член >argInfo
будет иметь значение >POPT_ARG_CALLBACK
, a >arg
будет указывать на функцию обратного вызова. Член >descrip
может представлять любое значение указателя, и передается в обратный вызов каждый раз во время его инициирования, открывая доступ к любым произвольным данным. Все остальные члены структуры

Применение виртуальных машин дает различным категориям пользователей — от начинающих до IT-специалистов — множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение.В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт — Parallels Workstation, созданный в компании Parallels.

Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows.

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

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

Количество персональных компьютеров в нашей стране растет год от года. Сегодня во многих семьях имеется два или даже три компьютера.Чтобы воспользоваться всеми преимуществами такой ситуации, компьютеры в вашей квартире стоит объединить сетью. Это позволит вам играть по сети в компьютерные игры, совместно использовать дисковое пространство, принтеры, модемы и другие устройства, всю сеть можно соединить с Интернетом. А в офисах сеть между компьютерами просто необходима.Открывающиеся перспективы выглядят очень заманчиво.

Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными программами и системами, полезными при преподавании информатики в средней школе. В обзор вошли основы открытых операционных систем, сведения о пакете «офисных» программ OpenOffice.org, коммуникационном пакете Mozilla, графическом редакторе GIMP, современных графических средах GNOME и KDE и других программах.Для преподавателей информатики и методистов, а также для студентов и аспирантов соответствующих специальностей.© 2002-3, Максим Отставнов.© 2002, Андрей Добровольский (раздел 3.1).Использован текст лекций, публиковавшихся автором в приложении к газете «Первое сентября» «Информатика» (http://inf.1september.ru) в 2002-3 г., материалы брошюры «Прикладные свободные программы в школе» (М.: 2003 г.), а также фрагменты статей, ранее публиковавшихся в журналах «Компьютерра» и «Домашний компьютер».Материалы, представленные в этой книге, также доступны в Интернет на странице www.otstavnov.com/fsft на условиях Свободной лицензии ГНУ на документацию (GNU FDL)