我正在尝试将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
- >仍显示所有帮助内容。它应该提示一个不需要参数的错误??
答案 0 :(得分:0)
不,这不算错误。 getopt_long
将1234
解释为程序参数。
在这个例子中更清楚:
rm -r -f dir1/ dir2/
此处-r
和-f
是选项,dir1/
和dir2/
都是程序参数。
请注意,如果您执行rm file1.txt -f
,它将尝试删除名为“-f
”的文件。