Nikita_Kudinov
@Nikita_Kudinov
Программирую свои программулины

Как обработать -- в getopt_long?

Нужно обработать ввод program -n 2 -t 4 -- text.
Как можно заполучить этот text после --?
У меня такой код:
#include <getopt.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
        struct option longopts[] =
        {
                {
                        .name = "number",
                        .has_arg = required_argument,
                        .flag = NULL,
                        .val = 'n'
                },
                {
                        .name = "timeout",
                        .has_arg = required_argument,
                        .flag = NULL,
                        .val = 't'
                },
                {
                        .name = "",
                        .has_arg = required_argument,
                        .flag = NULL,
                        .val = 0
        }
        };
        while (1)
        {
                int c = getopt_long(argc, argv, "n:t:", longopts, NULL);
                if (c == -1)
                {
                        break;
                }
                switch (c)
                {
                        case 'n':
                                printf("option 'n' with '%s'\n", optarg);
                                break;
                        case 't':
                                printf("option 't' with '%s'\n", optarg);
                                break;
            case NULL:
                                printf("def");
                                break;
                }
        }
        return 0;
}
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Можно что-то такое вставить после цикла while:
if (optind < argc) {
                int i;

                for (i = optind; i < argc; ++i)
                        printf("> %s\n", argv[i]);
        }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы