Usando getopt en C con argumentos no opcionales
Estoy haciendo un pequeño programa en C que trata con muchos argumentos de la línea de comandos, así que decidí usar getopt para ordenarlos.
Sin embargo, quiero que dos argumentos no opcionales (archivos de origen y destino) sean obligatorios, por lo que debe tenerlos como argumentos al llamar al programa, incluso si no hay indicadores u otros argumentos.
Aquí hay una versión simplificada de lo que tengo que manejar los argumentos con banderas:
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;
}
}
¿Cómo edito esto para que los argumentos sin opción también se manejen?
También quiero tener las no opciones anteso después de las opciones, entonces, ¿cómo se manejaría eso?