下拉刷新
C 项目

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

Star 1.5k
Vol.119
9 天前

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

voidImageViewer
2
zenc
Star 4k
Vol.119
13 小时前

像高级语言一样写 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
3
clifm
Star 1.6k
Vol.118
7 天前

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

clifm
Star 631
Vol.117
3 个月前

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

Hexecute
Star 3.2k
Vol.117
2 个月前

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

TaskExplorer
6
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;
}
7
iotop
Star 639
Vol.115
2 天前

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

iotop
Star 1.4w
Vol.115
15 小时前

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

libsodium
Star 2.1w
Vol.114
1 天前

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

fastfetch
Star 6.5k
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;
}