我想在Linux中使用终端编写一个简单的C程序。我不知道如何检查程序执行过程中是否没有提供任何选项:
./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
答案 0 :(得分:1)
我认为如果不传递任何参数(选项)来启动,则需要检查 argc 号,您的argc将为1,否则为1 + count(选项)。