函数原型intsplitcommandline(OptionParseContextoctx,intargc,charargv〔〕,constOptionDefoptions,constOptionGroupDefgroups,intnbgroups); 将命令行拆分成内部格式,方便后续处理。 命令行被假定为由两种选项组成,一种属于一个组(选项标记包含OPTSPEC,OPTOFFSETorOPTPERFILE),一种属于全局选项。 组(由OptionGroupDef结构体定义)是由组分隔符选项(例如i)或非选项(不以开头)终止的选项序列。没有分隔符选项的组必须始终位于所提供的组列表的第一个。 同一组中的所有选项存储在OptionGroupList中的一个OptionGroup结构中,具有相同组定义的所有组存储在OptionParseContext。groups中的一个OptionGroupList中。组列表的顺序与组定义的顺序相同。 调用 第三个参数传递的是options,这是一个预定义的OptionDef选项数组。 第四个参数groups定义如下staticconstOptionGroupDefgroups〔〕{〔GROUPOUTFILE〕{outputurl,NULL,OPTOUTPUT},〔GROUPINFILE〕{inputurl,i,OPTINPUT},}; 说明有两个选项组,一个包含输出参数,一个包含输入参数。 选项解析涉及的结构体 下面对函数源码进行简单的注释