Używanie getopt w C z argumentami innymi niż opcje

Tworzę mały program w C, który zajmuje się wieloma argumentami wiersza poleceń, więc zdecydowałem się użyć getopt do sortowania ich dla mnie.

Jednak chcę, aby dwa argumenty nie będące opcjami (pliki źródłowe i docelowe) były obowiązkowe, więc musisz wywoływać je jako argumenty podczas wywoływania programu, nawet jeśli nie ma flag lub innych argumentów.

Oto uproszczona wersja tego, co muszę obsługiwać argumentami z flagami:

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;
    }
}

Jak to edytować, aby obsługiwać także argumenty inne niż opcje?

Chcę też mieć możliwość wcześniejszego wyboru opcjilub po opcjach, więc jak by to było obsługiwane?

questionAnswers(2)

yourAnswerToTheQuestion