2025-07-15 10:42:23 +08:00
2025-07-14 16:12:38 +08:00
2025-07-14 16:12:38 +08:00
2025-07-14 16:12:38 +08:00
2025-07-14 16:12:38 +08:00
2025-07-14 16:12:38 +08:00
2025-07-14 16:12:38 +08:00
2025-07-14 16:12:38 +08:00
2025-07-14 16:12:38 +08:00
2025-07-14 16:12:38 +08:00
2025-07-14 16:12:38 +08:00
2025-07-14 16:12:38 +08:00
2025-07-14 16:12:38 +08:00
2025-07-15 10:42:23 +08:00
2025-07-14 16:12:38 +08:00

CArgParse

C语言易用的命令参数分析

特性

  • 自动生成帮助信息
  • 命令自动帮助信息
  • 默认值支持
  • 子命令支持
  • 命令参数支持
  • 全局参数
  • 互斥参数(即将)

安装

cmake安装

cmake -S . -B build
cmake --build build
cmake --install build

conan安装

将库构建为conan

conan create .

示例程序

构建简单的命令行程序

#include "ArgParse.h"
#include <stdbool.h>
#include <stdio.h>
#include <string.h>

ArgParse *Init() {
    ArgParse *ap = argParseInit("简单的命令行工具示例");

    // 添加第一个命令
    Command *cmd = argParseAddCommand(
        ap, "list", "列出文件列表", NULL, NULL, NULL, SINGLEVALUE);

    // 添加第一个命令的参数
    argParseAddArg(cmd,
                   "-a",
                   "--all",
                   "列出所有文件包括隐藏文件",
                   NULL,
                   NULL,
                   false,
                   NOVALUE);

    return ap;
}

int main(int argc, char *argv[]) {
    ArgParse *ap = Init();
    argParseParse(ap, argc, argv);

    char *dir = argParseGetCurCommandValue(ap);
    if (dir != NULL) {
        printf("列出目录: %s 的文件列表\n", dir);
    }

    if (argParseCheckCurArgTriggered(ap, "-a")) {
        printf("触发了 -a 参数,列出所有文件\n");
    }

    argParseFree(ap);
    return 0;
}
example -h

帮助信息

Description
No description provided
Readme MIT 166 KiB
V0.3.2 Latest
2025-09-30 14:04:17 +08:00
Languages
C 91.3%
CMake 4.6%
Python 4.1%