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; }