C getopt_long选项的两个必需参数

时间:2016-03-29 19:09:29

标签: c getopt getopt-long

是否可以告诉getopt_long如果给出一个选项,我需要两个参数?

例如,如果存在-i,则接下来需要两个参数,如果它们不存在则解析将失败。

1 个答案:

答案 0 :(得分:0)

根据manualgetopt_long() -- proper way to use it?,每个参数传入一个通过optarg传递的值。

看来你需要做的是使用optarg作为第一个参数和EntityB使用的指针,作为指针和strlen(optarg)指向参数后面。然后(当你在--i时)测试下一个字符串是参数还是下一个选项。如果它是下一个选项,那么就会出错。如果是第二个参数,请选择它。

您可能必须使用Schema2.DbContext2变量并指向argv [optind]进行处理。

但是,这可能不起作用,因为

  

默认情况下,getargs()会在扫描时置换argv的内容,因此   最终所有的非选项都在最后。

getopt()应跳过第二个参数,但是,我不确定(根据阅读手册)是否跳过它或将其保存以供日后使用。编写代码时,必须检查调试输出。我没有时间为此编写测试。