getopt 总是返回 1
Posted
技术标签:
【中文标题】getopt 总是返回 1【英文标题】:getopt always returns 1 【发布时间】:2014-04-13 14:33:50 【问题描述】:我想使用getopt
来获取我的控制台工具的参数列表。
当我像下面这样调用我的工具getopt
时,总是返回1
并且不匹配任何switch/case
。
我是不是做错了什么?
mytool -f farg -d darg
int
main(int argc, char** argv)
int c;
while((c = getopt(argc, argv, "f:d:h") != -1))
switch(c)
case'f':
break;
default:
break;
【问题讨论】:
【参考方案1】:while((c = getopt(argc, argv, "f:d:h") != -1))
它像
c = (getopt(argc, argv, "f:d:h") != -1)
嗯,那总是 1,因为比较的结果存储到 c
。在您的情况下,getopt
不会返回 -1
。如果它返回-1
,那么c
将是0
。解决方法是
while((c = getopt(argc, argv, "f:d:h")) != -1)
【讨论】:
以上是关于getopt 总是返回 1的主要内容,如果未能解决你的问题,请参考以下文章