option参数

如 ls -la 参数la 获取

int main(int argc,char *argv[]){
        int arg,opt;
        //传统方式
        for(arg = 0 ; arg < argc ; arg++){
                printf("%s\n",argv[arg]);
        }

        //getopt函数
        while((opt = getopt(argc,argv,"if:lr")) != -1){
                switch(opt){
                        case 'i':
                        case 'l':
                        case 'r':
                                printf("option:%c\n",opt);
                                break;
                        case 'f':
                                printf("filename:%s\n",optarg);
                                break;
                        case ':':
                                printf("option needs a value\n");
                                break;
                        case '?':
                                printf("unknown option:%c\n",optopt);
                                break;
                }
        }
}

长选项 如 - -help 两个减号

#include<stdio.h>
#include<stdlib.h>
#include<getopt.h>
int main(int argc,char *argv[]){
        int opt;
        //告诉程序如何处理选项
        struct option longopts[] = {
                {"initialize",0,NULL,'i'},
                {"file",1,NULL,'f'},
                {"list",0,NULL,'l'},
                {"restart",0,NULL,'r'},
                {0,0,0,0},
        };
        while((opt = getopt_long(argc,argv,":if:lr",longopts,NULL)) != -1){
                switch(opt){
                        case 'i':
                        case 'l':
                        case 'r':
                                printf("option:%c\n",opt);
                                break;
                        case 'f':
                                printf("filename:%s\n",optarg);
                                break;
                        case ':':
                                printf("option needs a value\n");
                                break;
                        case '?':
                                printf("unknown option:%c\n",optopt);
                                break;
                }
        }
        for(; optind < argc;optind++){
                printf("argument:%s",argv[optind]);
        }
}

option 结构体
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值