使用 getopt() 进行命令行处理

getopt() 函数位于 unistd.h 系统头文件中


int getopt( int argc, char *const argv[], const char *optstring );

 

给定了命令参数的数量 ( argc) 、指向这些参数的数组 ( argv) 和选项字符串 ( optstring) 后, getopt() 将返回第一个选项,并设置一些全局变量。使用相同的参数再次调用该函数时,它将返回下一个选项,并设置相应的全局变量。如果不再有识别到的选项,将返回 -1 ,此任务就完成了。

 

getopt() 所设置的全局变量包括:

optarg—— 指向当前选项参数(如果有)的指针。

optind—— 再次调用 getopt() 时的下一个 argv 指针的索引。

optopt—— 最后一个已知选项。

 

对于每个选项,选项字符串 ( optstring) 中都包含一个对应的字符。具有参数的选项(如示例中的 -l -o 选项)后面跟有一个 : 字符。示例所使用的 optstring Il:o:vh?

 

示例:将演示一个假想的 doc2html 程序的命令行处理

-I                不创建关键字索引。

-l lang           转换为使用语言代码 lang 指定的语言。

-o outfile.html   将经过转换的文档写入到 outfile.html ,而不是打印到标准输出。

-v                进行转换时提供详细信息;可以多次指定,以提高诊断级别。

      使用其他文件名称来作为输入文档。

 

还将支持 -h -? ,以打印帮助消息来提示各个选项的用途。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值