本文总结了如何使用C语言去解析命令行中的短选项、长选项以及对应的参数值。
解析短选项
解析短选项使用getopt函数,其定义在头文件<unistd.h>中,函数原型如下:
1 | int getopt (int argc, char *const *argv, const char *options) |
功能:返回下一个选项。如果没有下一个选项,则返回-1。如果返回?
,则表明当前选项不在options中,或者缺少参数值。
参数:
- argc:参数的个数
argv:参数数组
options
后跟冒号:
,表明其需要一个参数值;后跟两个冒号::
,表明该选项是可选的(optional)。
1 | // 若当前选项有参数,则optarg中存储着对应的参数值 |
- 例子
1 |
|
解析长选项
getopt_long
getopt_long函数定义在头文件<getopt.h>中,函数原型如下:
1 | int getopt_long (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *indexptr) |
其中,struct option
定义如下:
1 | struct option |
getopt_long_only
1 | int getopt_long_only (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *indexptr) |