getopt_longの使用
プロジェクト学習の過程で、コードの中でgetopt_に役立つのを見ました.long()関数は、ネットで資料を調べてみると、この関数が役に立つことがわかりました.そこで、自分でコードを書いて、理解を強化しました.
コードは次のとおりです.
コードは次のとおりです.
/*
* name: my_getopt_long.c
* coder:[email protected]
* time:02.06.2012
*/
#include <stdio.h>
#include <getopt.h>
#include <assert.h>
char short_options[] = "hw?";
int printf_help()
{
printf(" [-h|--hello <status/number]
");
printf(" [-w|--world <status/number]
");
return 0;
}
struct option long_options[] =
{
{"hello ", 0, NULL, "h"},
{"world", 0, NULL, "w"},
{0, 0, 0, 0},
};
int main(int argc, char **argv)
{
assert((argc != NULL) && (argv != NULL));
int i = 0,opt = 0,err_flag = 0, ret = -1, action[128] ={0};
while ((opt = getopt_long(argc, argv, short_options, long_options, NULL)) != -1)
{
switch(opt)
{
case 'h':
printf("hello
");
break;
case 'w':
printf("world
");
break;
case '?':
err_flag = 1;
break;
}
i++;
}
if (optind > argc || err_flag == 1)
{
printf("optind = %d
",optind);
printf("argc = %d
",argc);
printf("Error : Wrong input!
");
printf_help();
_exit(1);
}
return 0;
}