getopt_long的使用

#include <stdio.h>
#include <getopt.h>

static struct option long_options[] = {
{"user",        required_argument, 0, 'u'},/*'u'表示返回值*/
{"password",    required_argument, 0, 'p'},
{"startip",     required_argument, 0, 's'},
{"endip",       required_argument, 0, 'e'},
{"interface",   optional_argument, 0, 'i'},
{"help",        no_argument,       0, 'h'},
{0,             no_argument,       0, 0}
};

 
int main(int argc, char **argv)
{
    int c;
    while (1) {
        int option_index = 0;
        c = getopt_long (argc, argv, "u:p:s:e:i::h",/*:表示要有值,::表示是option*/
                 long_options, &option_index);
        if(c == -1)
            break;  
           
        switch (c){
            case 'u':
                printf (" with arg %s", optarg);
                printf ("/n");
                break;

            case 'p':
                printf (" with arg %s", optarg);
                printf ("/n");
                break;                 
           
            case 's':
                printf (" with arg %s", optarg);
                printf ("/n");
                break;                 

            case 'e':                              
                printf (" with arg %s", optarg);
                printf ("/n");
                break;                 

            case 'i':              
                if (optarg){
                    printf (" with arg %s", optarg);
                    printf ("/n");
                }                  
                break;                 

            case 'h':
            case '?': 
usage();            
                break;   
           
            default:
                printf ("?? getopt returned character code 0%o ??/n", c);                          
        }
    }
   
      if (optind < argc) {
              printf ("non-option ARGV-elements: ");
               while (optind < argc)
                   printf ("%s ", argv[optind++]);
               printf ("/n");
        }

           exit (0);
   
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值