如何在getopt_long中使用no_argument?

时间:2014-03-02 13:35:39

标签: c getopt-long

我正在尝试将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 

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

1 个答案:

答案 0 :(得分:0)

不,这不算错误。 getopt_long1234解释为程序参数。

在这个例子中更清楚:

rm -r -f dir1/ dir2/

此处-r-f是选项,dir1/dir2/都是程序参数。 请注意,如果您执行rm file1.txt -f,它将尝试删除名为“-f”的文件。