是否可以告诉getopt_long如果给出一个选项,我需要两个参数?
例如,如果存在-i
,则接下来需要两个参数,如果它们不存在则解析将失败。
答案 0 :(得分:0)
根据manual和getopt_long() -- proper way to use it?,每个参数传入一个通过optarg传递的值。
看来你需要做的是使用optarg作为第一个参数和EntityB
使用的指针,作为指针和strlen(optarg)指向参数后面。然后(当你在--i时)测试下一个字符串是参数还是下一个选项。如果它是下一个选项,那么就会出错。如果是第二个参数,请选择它。
您可能必须使用Schema2.DbContext2
变量并指向argv [optind]进行处理。
但是,这可能不起作用,因为
默认情况下,getargs()会在扫描时置换argv的内容,因此 最终所有的非选项都在最后。
getopt()
应跳过第二个参数,但是,我不确定(根据阅读手册)是否跳过它或将其保存以供日后使用。编写代码时,必须检查调试输出。我没有时间为此编写测试。