| Использование длинных опций |
|
Функция getopt_long (), объявленная в заголовочном файле getopt.h, позволяет обрабатывать не только короткие, но и длинные (многосимвольные) опции. Следует заметить, что getopt_long () устанавливает правило, по которому длинным опциям предшествует последовательность из двух дефисов (—version, —line-number и т. Д.). Итак, функция getopt_long() имеет следующий прототип: int getopt_long (int ARGC, char ** ARGV, Аргументы argc, argv и short_opts аналогичны соответствующим аргументам функции getopto из предыдущего раздела. long_opts — это массив структур option, описывающий длинные опции и соответствующие им короткие опции. По адресу, находящемуся в opt_index, располагается индекс текущей опции в массиве long_opts. Структура option состоит из четырех элементов: struct option Строка long_opt содержит имя длинной опции (без дефисов). Элемент with_arg может принимать три значения:
Указатель opt_flag необходим для работы с опциями, не требующими аргументов, В рамках данной книги мы не будем использовать этот элемент. Если opt_flag установлен в null, то в short_.opt заносится код символа соответствующей короткой опции. Последний элемент массива long_opts должен содержать только нулевые значения: LONG_OPT = NULL; Если в каждом элементе массива long_opts устанавливать opt„flag в null, то функция getopt_long () будет работать так же, как и getopt (). Указатель opt_flag позволяет задействовать расширенные возможности getopt_iong(), описание которых выходит за рамки данной книги. Рассмотрим в качестве примера программу из предыдущего раздела, добавив в нее возможность обработки длинных опций. Для этого определим следующие соответствия между длинными и короткими опциями:
Программа longoptdemo.с #include <stdio.h> Получение дополнительной информации Дополнительную информацию по этой теме можно получить из следующих источников:
Related Articles
Set as favorite
Bookmark
Email This
Hits: 179 Комментарии (0)RSS feed CommentsНаписать комментарий |