[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Выделение опций из командной строки

getopt(3C) - это функция общего назначения для обработки опций
командной строки. Командная строка должна удовлетворять следующим
правилам:
Общий формат: имя_команды [опции] [необязательные_опции]
имя_команды        Имя выполняемого файла.

опции              Должны начинаться  со  знака  минус.  Каждая  опция
                   может  иметь  отдельный  разделительный  минус  или
                   несколько опций  могут совместно  использовать один
                   знак минус.  Некоторые  опции  требуют  аргументов.
                   Смотрите  intro(1)     для  сверки  с  общепринятым
                   синтаксисом командной строки.

необязательные_опции     Следуют за  опциями и  не обязательно  должны
                   начинаться со знака минус.

                   Пример:    ls -lt /tmp;   pr -n file1 file2;

getopt(3C) обычно исполняется в начале программы. Она вызывается в
цикле для последовательной обработки опций программы. У getopt(3C) три
аргумента:
- Целый argc. Обычно первый аргумент main().

- Указатель  на   указатель символа  argv.    Обычно  второй  аргумент
  main().

- Указатель  на символ  (строка  параметров).  Это  строка  допустимых
  опций. Если  у опции  есть аргументы, то за этой опцией будет стоять
  двоеточие.

getopt(3C)  возвращает одно из следующих целых значений:
буква верной опции


-1        при обработке первого аргумента не опции

getopt(3C) использует четыре внешних переменных:
optarg    указатель на символ. Когда getopt(3C) обрабатывает опцию, у
которой есть аргументы, optarg содержит адрес этого аргумента.
optind    целое. Когда getopt(3C) возвращает -1, argv[optind]
указывает на первый аргумент не-опцию.
opterr    целое.  Когда getopt(3C) обрабатывает недопустимые опции,
сообщение об ошибке выводится на стандартный вывод диагностики. Печать
может быть подавлена установкой opterr в ноль.
optopt    целое. Когда getopt(3C) возвращает '?', optopt содержит
значение недопустимой опции.
                 ВЫДЕЛЕНИЕ ОПЦИЙ ИЗ КОМАНДНОЙ СТРОКИ
getopt(3C)

ИМЯ

    getopt - выделить опцию из командной строки

СИНТАКСИС

    #include <stdlib.c>

    int getopt (int argc, char *const *argv,
                         const char *optstring);

    extern char *optarg;
    extern int optind, opterr, optopt;

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

    буква верной опции
    '?'   если обнаружена недопустимая опция
    -1    если все опции были обработаны.