专栏中心

EEPW首页 > 专栏 > struct option结构定义

struct option结构定义

发布人:电子禅石 时间:2020-04-03 来源:工程师 发布文章

转自:http://blog.sina.com.cn/s/blog_4db5519f01014j77.html

在该函数中,初始化结构体数组:const struct option longOptions[],其原型定义在getopt.h中:

#defineno_argument       0
#define required_argument  1
#define optional_argument  2

struct option {
   const char *name;
   int has_arg;
   int *flag;
   int val;
};

const char *name是不带短横线的选项名,前面没有短横线。譬如“help”、“verbose”之类。
int has_arg描述了选项是否有选项参数。如果有,是哪种类型的参数,此时,它的值一定是下表中的一个。符号常量数值含义
no_argument 

0 选项没有参数
required_argument  1 选项需要参数
optional_argument  2 选项参数可选
int *flag 如果这个指针为NULL,那么getopt_long()返回该结构val字段中的数值。如果该指针不为NULL,getopt_long()会使得它所指向的变量中填入val字段中的数值,并且getopt_long()返回0。如果flag不是NULL,但未发现长选项,那么它所指向的变量的数值不变。
int val 这个值是发现了长选项时的返回值,或者flag不是NULL时载入*flag中的值。典型情况下,若flag不是NULL,那么val是个真/假值,譬如1或0;另一方面,如果flag是NULL,那么val通常是字符常量,若长选项与短选项一致,那么该字符常量应该与optstring中出现的这个选项的参数相同。
int main(int argc, char *argv[])
{
    intopt;
    charfilename[512];
    intopen_flag = 0;
    while((opt =getopt(argc, argv, “hf:vo")) != -1) {
       switch(opt) {
       case ‘v': printf(“ver 3.1”);break;
       case ‘h':usage();break;
       case ‘o’: open_flag =1 ;break;
       case 'f':
           printf("filename: %s\n", optarg);
           
           strncpy(filename,optarg,sizeof(filename)-1);
           break;
       case ‘:’:
           printf("option %c needs a value\n ", optopt);
           break;
       case ‘?’:
           printf("unknown option: %c\n", optopt);
           break;
       }
    }


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

使用OPC连接LabVIEW到任意PLC

视频 2009-03-24

鼎阳科技2025半年报:营收同比增长24.61%,高端产品增速71.92%领跑行业

2025-08-15

P89C51Rx2xx单片机硬件进入ISP的方法 (英)

P89C51RD2的Boot ROM与ISP功能的实现

贸泽电子盛装亮相2025 IOTE深圳物联网展

LCD显示以及数字化仪流盘应用视频演示

视频 2009-03-24

大联大诠鼎集团推出基于Synaptics产品的AI疲劳驾驶检测方案

自由度直升机控制系统视频演示

视频 2009-03-24

12路1080P高清视频流,米尔RK3576 开发板重塑视频处理极限

P89C51RD2和P89V51RD2的区别 (英)

rc license ?

gem2000 2003-05-07

桥梁健康检测系统视频演示

122TB QLC SSD领衔: Solidigm助力开放计算下的AI存储演进

共建生态,米尔将出席2025安路科技FPGA技术沙龙

嵌入式系统 2025-08-15

PXI Express混合信号仪器视频教程

视频 2009-03-24

十五年爱心传递的力量,那个被眷顾的云南女孩探访MR上海总部

金融时报:DeepSeek 因华为芯片问题推迟新人工智能模型

世强硬创携手千家原厂:车身控制域、新能源与三电系统等汽车电子创新方案呈现生态协同成果

Ceva达成出货200亿台设备的重大里程碑

EDA/PCB 2025-08-15
更多 培训课堂
更多 焦点
更多 视频

技术专区