繁体   English   中英

getopt 总是返回 1

[英]getopt always returns 1

我想使用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;
      }
  }
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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM