下拉刷新
C 项目

这里是按照「分类」阅读往期的 HelloGitHub 月刊内容, 您目前在查看 HelloGitHub C 项目 集合。

1
clifm
Star 1.6k
Vol.118
14 小时前

纯命令行的文件管理器。这是一款 C 语言写的命令行文件管理工具,使用起来比 Shell 更高效、比 TUI 工具更轻便。它没有复杂的菜单和图形界面,用户只需输入简单的命令即可快速完成文件操作,支持条目数字索引、自动补全、语法高亮和文件预览等功能。

clifm
Star 605
Vol.117
2 个月前

Linux 桌面鼠标手势启动器。这是一款基于 Wayland 的手势启动器,可通过鼠标绘制图案快速启动应用。新手势录入只需一条命令并重复绘制 3 次,操作简单直观。所有手势数据均以 JSON 文件形式存储,方便编辑、备份和迁移。

Hexecute
Star 3.1k
Vol.117
12 天前

更强大的 Windows 任务管理器。这是一款适用于 Windows 平台的高级任务管理工具,相比系统自带的任务管理器,能够实时显示更详细的进程信息,包括线程堆栈、文件句柄和网络连接等。

TaskExplorer
4
sj.h
Star 1.5k
Vol.116
4 个月前

极简的 C 语言 JSON 解析库。这是一个轻量级的 C 语言 JSON 解析库,提供可靠的 JSON 遍历和基础解析功能。它仅 150 行代码、无外部依赖,采用零内存分配策略,直接在原数据上进行解析,速度快且无内存泄漏风险,适用于嵌入式、物联网和游戏开发等场景。

char *json_text = "{ \"x\": 10, \"y\": 20, \"w\": 30, \"h\": 40 }";

typedef struct { int x, y, w, h; } Rect;

bool eq(sj_Value val, char *s) {
    size_t len = val.end - val.start;
    return strlen(s) == len && !memcmp(s, val.start, len);
}

int main(void) {
    Rect rect = {0};

    sj_Reader r = sj_reader(json_text, strlen(json_text));
    sj_Value obj = sj_read(&r);

    sj_Value key, val;
    while (sj_iter_object(&r, obj, &key, &val)) {
        if (eq(key, "x")) { rect.x = atoi(val.start); }
        if (eq(key, "y")) { rect.y = atoi(val.start); }
        if (eq(key, "w")) { rect.w = atoi(val.start); }
        if (eq(key, "h")) { rect.h = atoi(val.start); }
    }

    printf("rect: { %d, %d, %d, %d }\n", rect.x, rect.y, rect.w, rect.h);
    return 0;
}
5
iotop
Star 626
Vol.115
14 天前

终端下的 IO 资源监控工具。这是一款用于监控 Linux 系统 I/O 的命令行工具,拥有类似 top 命令的交互界面和操作方式,支持实时按 I/O 使用率对进程进行排序和展示。

iotop
Star 1.3w
Vol.115
6 天前

开箱即用的 C 语言加密库。这是一个现代易用、跨平台的 C 语言加密库,为开发者提供全面的加密操作 API。它集成了多种加密、签名和哈希算法,适用于安全通信、数据保护等场景。

libsodium
Star 2w
Vol.114
2 天前

更快的系统信息查看工具。这是一个类似 neofetch 的命令行工具,可以在终端里概览系统的相关信息。它采用 C 语言编写,相较于 bash 写的 neofetch 更快,显示的信息包括操作系统、Shell、内核、CPU、GPU、内存等,目前支持 Linux、Android、FreeBSD、macOS 和 Windows 7+ 操作系统。

fastfetch
Star 6.3k
Vol.114
3 天前

极简易用的 C 语言音频库。这是一个单文件、零依赖、跨平台的 C 语言音频库。它将各种主流操作系统的底层音频 API 封装成简单易用的接口,让你轻松实现音频播放、录制和处理等功能,适用于游戏引擎、实时通讯、嵌入式、离线批处理等场景。

#include "miniaudio/miniaudio.h"

#include <stdio.h>

int main()
{
    ma_result result;
    ma_engine engine;

    result = ma_engine_init(NULL, &engine);
    if (result != MA_SUCCESS) {
        return -1;
    }

    ma_engine_play_sound(&engine, "sound.wav", NULL);

    printf("Press Enter to quit...");
    getchar();

    ma_engine_uninit(&engine);

    return 0;
}
9
nob.h
Star 2.5k
Vol.113
7 天前

单文件的 C 语言构建系统。这是一个仅头文件的 C 语言库,支持通过 C 代码直接定义构建逻辑,实现自动化编译和构建,无需依赖外部工具,仅用 C 编译器即可完成项目构建。

Star 2.5k
Vol.113
19 天前

轻量级多协议的缓存服务。这是一款专注于低延迟和低 CPU 占用的高性能缓存服务,无论单线程还是多线程均表现优异。它可作为独立服务或单文件库使用,支持 RESP、Memcache、HTTP、Postgres 等多种协议。

pogocache