1

我正在尝试将 getopt_long 用于我的代码。optional_argument 和 required_argument 选项可以正常工作,但 no_Argument 选项不能正常工作。这就是我编码它的方式。

struct option long_option[] = 
{
  {"auto",required_argument,0,'a'},
  {"help",no_argument,0,'h'},
  {"list",no_argument,0,'l'},
  {0,0,0,0}
};

现在,如果我编译并尝试:

./a.out --help 

--> 显示所有帮助内容

./a.out --help 1234 

--> 仍然显示所有帮助内容。它应该提示不需要参数的错误?

4

1 回答 1

0

不,这不被视为错误。getopt_long解释1234为程序参数。

在这个例子中更清楚:

rm -r -f dir1/ dir2/

这里-r-f是选项,两者dir1/dir2/都是程序参数。注意,如果你执行rm file1.txt -f,它会尝试删除一个名为“ -f”的文件。

于 2014-03-02T13:39:29.010 回答