Использование getopt в C с необязательными аргументами
Я делаю небольшую программу на C, которая обрабатывает множество аргументов командной строки, поэтому я решил использовать getopt, чтобы отсортировать их для меня.
Однако я хочу, чтобы два необязательных аргумента (исходный и целевой файлы) были обязательными, поэтому вы должны использовать их в качестве аргументов при вызове программы, даже если нет флагов или других аргументов.
Вот упрощенная версия того, что я должен обрабатывать аргументы с флагами:
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;
}
}
Как мне отредактировать это так, чтобы не опциональные аргументы также обрабатывались?
Я также хочу иметь возможность без опций либо раньшеили же после вариантов, так как это будет обрабатываться?