Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

一个使用getopt()函数获取命令行参数的例子

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

#include 
       int
       main (argc, argv)
            int argc;
            char **argv;
       {
         int c;
         int digit_optind = 0;

         while (1)
           {
             int this_option_optind = optind ? optind : 1;
             int option_index = 0;
             static struct option long_options[] =
             {
               {"add", 1, 0, 0},
               {"append", 0, 0, 0},
               {"delete", 1, 0, 0},
               {"verbose", 0, 0, 0},
               {"create", 1, 0, 'c'},
               {"file", 1, 0, 0},
               {0, 0, 0, 0}
             };
             c = getopt_long (argc, argv, "abc:d:012",
                        long_options, &option_index);
             if (c == -1)
            break;
             switch (c)
               {
               case 0:
                 printf ("option %s", long_options[option_index].name);
                 if (optarg)
                   printf (" with arg %s", optarg);
                 printf (" ");
                 break;
               case '0':
               case '1':
               case '2':
                 if (digit_optind != 0 && digit_optind != this_option_optind)
                   printf ("digits occur in two different argv-elements. ");
                 digit_optind = this_option_optind;
                 printf ("option %c ", c);
                 break;
               case 'a':
                 printf ("option a ");
                 break;
               case 'b':
                 printf ("option b ");
                 break;
               case 'c':
                 printf ("option c with value `%s' ", optarg);
                 break;
               case 'd':
                 printf ("option d with value `%s' ", optarg);
                 break;
               case '?':
                 break;
               default:
                 printf ("?? getopt returned character code 0%o ?? ", c);
               }
           }
         if (optind < argc)
           {
             printf ("non-option ARGV-elements: ");
             while (optind < argc)
             printf ("%s ", argv[optind++]);
             printf (" ");
           }
         exit (0);
       }



 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:和luster学习在Linux创建库函数(4)   下一篇:[网卡]快速搞定D-Link530TX RevB网卡

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号