工作上写了两版,第一版封装的argp
,第二版有了大体框架,这算是第三版,做了细致的完善,同时补了文档、示例、测试,分享出来。
项目地址:https://github.com/XUJINKAI/cmdparser
主要功能:对 short/long option 解析;支持子命令,并且子命令支持嵌套;可以自定义提示信息,自定义隐藏命令等。
除了回调函数和储存解析结果,其他定义都在一个结构体中。
static cmdp_command_st cmdp = {
.options = {
{'i', "long", "Input Int Option", CMDP_TYPE_INT4, &arg.i},
{0},
},
.sub_commands = (cmdp_command_st[]){
{
.name = "sub",
.doc = "text...\n",
.options = {...},
.fn_process = sub_callback,
},
{0},
},
.fn_process = main_callback,
};
int main(int argc, char **argv)
{
return cmdp_run(argc - 1, argv + 1, &cmdp);
}
更复杂的示例的话,我照着 git 仿写了一部分命令,可以看这里。
虽然是个简单的库,自认为做的还是很完善的,能适应大多需求,求个 star😊
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.