下拉刷新
C 项目

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

Star 2.5k
Vol.120
4 年前

把井字棋塞进一次 printf 调用。这是一个展示 C 语言黑魔法的开源项目,在单个 printf 调用内完成了游戏逻辑运算、变量赋值、胜负判断和界面渲染,同时支持数字键落子、走法检测和刷新棋盘功能。

printf-tac-toe
Star 1.6k
Vol.119
1 个月前

比图片还小的免费看图工具。这是一款用 C 语言编写的 Windows 轻量级图片查看工具,让你几乎感受不到等待。它体积小、启动快,拥有极快的图片加载和切换速度,支持 JPG、PNG、WEBP、BMP、GIF、ICO、TIF 等主流图片格式。

voidImageViewer
3
zenc
Star 4.1k
Vol.119
3 天前

像高级语言一样写 C 代码。这是一个现代系统编程语言,写起来像高级语言又能像 C 语言一样运行。它通过编译生成 GNU C/C11 代码,兼容 C ABI(应用程序二进制接口),支持无缝集成到现有的 C 语言生态,在保持 C 语言运行效率的基础上,提升开发体验。

import "std/net/tcp.zc"

fn main() {
    "Echo Server listening on :8080";
    let listener = TcpListener::bind("127.0.0.1", 8080).unwrap();

    loop {
        // Accept new connections
        let stream = listener.accept().unwrap();
        let buf: char[1024];
        
        while true {
            let n = stream.read(&buf[0], 1024).unwrap();
            if n == 0 { break; }
            stream.write(&buf[0], n);
        }
    }
}
zenc
4
clifm
Star 1.6k
Vol.118
12 小时前

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

clifm
Star 644
Vol.117
4 个月前

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

Hexecute
Star 3.3k
Vol.117
2 个月前

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

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

极简的 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;
}
8
iotop
Star 645
Vol.115
20 天前

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

iotop
Star 1.4w
Vol.115
2 天前

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

libsodium
Star 2.2w
Vol.114
16 小时前

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

fastfetch