V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xujinkai
V2EX  ›  分享创造

分享一个 C 语言的命令行解析库, cmdparser,求 star!

  •  
  •   xujinkai ·
    XUJINKAI · 2022-09-27 22:21:22 +08:00 · 1280 次点击
    这是一个创建于 570 天前的主题,其中的信息可能已经有所发展或是发生改变。

    工作上写了两版,第一版封装的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😊

    2 条回复    2022-09-28 00:04:00 +08:00
    misaka19000
        1
    misaka19000  
       2022-09-27 22:51:19 +08:00
    资瓷~
    duke807
        2
    duke807  
       2022-09-28 00:04:00 +08:00 via Android
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2370 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:08 · PVG 00:08 · LAX 09:08 · JFK 12:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.