LINUX.ORG.RU

[с++] getopt_long не обрабатывает параметры коротких опций

 


0

0

есть такой код на c++

#include <getopt.h>
//пропуск
const char* short_opt = "nAR";
const struct option long_options[] = {
        {"num-updates",         0,  NULL,   'n'},
       {"auto-update",         1,  NULL,   'A'},
       {"retry-interval",      1,  NULL,   'R'},
        {NULL,              0,  NULL,   0}
 };
 do { 
        opt = getopt_long (argc,argv, short_opt, long_options, &i);

        switch (opt){
case 'n':
            //пропуск
            break;
case 'A':
         printf ("%s", getopt);
        break;

  } while (opt != -1);

при использовании myprog -A blah переменная getopt равна NULL, а если myprog --auto-update=blah, то getopt будет равен blah.

Вопрос - что я делаю не так?

> Вопрос - что я делаю не так?

Не читаешь документацию, наверное... Если параметр принимает аргумент, после него должно быть двоеточие в short_opt.

const char* short_opt = «n:A:R:»;

kemm
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.