Usando getopt em C com argumentos não opcionais
Eu estou fazendo um pequeno programa em C que lida com um monte de argumentos de linha de comando, então eu decidi usar getopt para classificá-los para mim.
No entanto, eu quero que dois argumentos não opcionais (arquivos de origem e destino) sejam obrigatórios, então você deve tê-los como argumentos durante a chamada do programa, mesmo que não haja sinalizadores ou outros argumentos.
Aqui está uma versão simplificada do que eu tenho que lidar com os argumentos com sinalizadores:
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;
}
}
Como edito isso para que os argumentos não opcionais também sejam manipulados?
Eu também quero poder ter as não opções antesou depois das opções, como isso seria tratado?