Использование getopt в C с необязательными аргументами

Я делаю небольшую программу на C, которая обрабатывает множество аргументов командной строки, поэтому я решил использовать getopt, чтобы отсортировать их для меня.

Однако я хочу, чтобы два необязательных аргумента (исходный и целевой файлы) были обязательными, поэтому вы должны иметь их в качестве аргументов при вызове программы, даже еслиНет флагов или других аргументов.

Вот's упрощенная версия того, что я должен обрабатывать аргументы с флагами:

while ((c = getopt(argc, argv, "i:d:btw:h:s:")) != -1) {
    switch (c) {
        case 'i': {
            i = (int)atol(optarg);
        }
        case 'd': {
            d = (int)atol(optarg);
        }
        case 'b':
            buf = 1;
            break;
        case 't':
            time = 1;
            break;
        case 'w':
            w = (int)atol(optarg);
            break;
        case 'h':
            h = (int)atol(optarg);
            break;
        case 's':
            s = (int)atol(optarg);
            break;
        default:
            break;
    }
}

Как мне отредактировать это так, чтобы не опциональные аргументы также обрабатывались?

Я также хочу иметь возможность без опций либо раньшеили же после вариантов, так как это будет обрабатываться?

Ответы на вопрос(2)

Ваш ответ на вопрос