Я хочу написать простую программу на C, использующую терминал в Linux. Я не знаю, как проверить, не была ли предоставлена опция во время выполнения программы:
./program.a
Вот мой сценарий:
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv)
{
int opt;
while ((opt = getopt (argc, argv, "il:")) != -1)
switch (opt)
{
case 'i':
printf("This is option i");
break;
case 'l':
printf("This is option l");
break;
default:
fprintf(stderr,"Usage: %s [-i] opt [-l] opt\n",argv[0]);
}
if (argc == -1) {
printf("Without option");
}
}
Итак, вывод с:
./program.a
Должно быть:
"Without option"
Я пытался сделать это с помощью if и установить argc в -1, 0 или NULL, но это не работает. Я знаю, что в bash я могу использовать sth вот так: if [$ # -eq 0] или if [-z "$ {p}"], чтобы проверить, не была ли предоставлена опция, но в CI понятия не имею, как проверить что ...
У меня тоже есть второй вопрос: возможно ли как-то объединить функции bash с кодом C в одном скрипте / программе?
Спасибо за любые подсказки.
B