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 に答える