c语言getopt的return

The return of getopt in c language

我对 getopt 的 return 很困惑。什么时候 return (-1) ?

当我把它赋给一个int变量时,如果我不在终端window中写任何选项,它returns (-1)。而它 return 是 ascii 中的第一个选项字符,即使我写了多个选项也是如此。

但是在不赋值的情况下使用它时,如果我写了一个以上的选项,它returns (-1)。

关于附件的图片,它是如何输入错误消息的,尽管该值等于-1?

The Statments

The results

在你的例子中有 2 个参数 getopt 将 return 每次你调用它时都会有不同的值。第一次它会 return 'a' 然后它会 return 'b' 最后一次它没有更多的选项可以读取并且会 return -1

它应该像这样在循环中处理 https://www.tutorialspoint.com/getopt-function-in-c-to-parse-command-line-arguments