option参数

来源:互联网 发布:linux中cat命令语法 编辑:程序博客网 时间:2024/04/28 16:19

如 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 结构体
这里写图片描述
这里写图片描述

0 0