Skip to content

dodoma/reef

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2b0f47e · Apr 2, 2025
Jun 9, 2021
Mar 5, 2018
Apr 2, 2025
Apr 2, 2025
Nov 25, 2024
Mar 16, 2017
Jun 10, 2021
Mar 9, 2023
Apr 2, 2025
Apr 2, 2025
Nov 20, 2015
Sep 7, 2019
Nov 22, 2016

Repository files navigation

reef - basic tools in c

为何取名 reef?

reef triggerfish = Humuhumunukunukuāpuaa, 一种比较特别的鱼名,仅此而已。

环境

reef 用标准C99编写,运行于 GNU/Linux 系统, 使用了_GNU_SOURCE扩展功能, 在X86 Linux、OSX、和某些 ARM Linux上完成测试。 不保证Solaris, FreeBSD, Windows...下顺利运行。

目的

c 很难用,她只给了我们基础,而非全部,reef 是这个全部的开始。

reef 包括:

  • 字符串、列表、二进制内存块、哈希、字典(mdf)

  • 单元测试框架

  • 线程安全日志

  • 单线程测时工具

  • 错误返回(MERR)

  • json 数据解析

  • message pack 打包、解包

  • 一个写着好玩的正则表达式工具

  • 一个常见网络服务 的客户端API封装(memcache)

  • CGI 协议基础函数

  • HTTP 协议基础函数

为何返回 MERR* 而非 int

函数返回整型,0为正常,其它异常。

reef 没有遵守这个约定,因为我想在程序运行异常时快速定位是谁在第几行调用了谁,是什么鬼与预期不符。 MERR* 可以,虽然使用起来稍显麻烦。

MDF 适合干嘛

mdf 类似 Python 中的 dict, Javascript 中的 object, Lua 中的 Table。有丰富的操作函数。可以用来保存 web 开发 90% 左右的数据。

出了问题怎么办

先写个 test 进行确认,真有问题,你需要看看源代码。

怪异关键字

  • QJYQ - 奇技淫巧

    一些很不规范的操作,谨慎使用。

  • TCTR - too complex to remember

    现实中太复杂的业务场景,或者仅仅是代码实现得太复杂,时间太久容易忘记。照着注释来就行。

About

Reef triggerfish - Humuhumunukunukuāpuaa (https://en.wikipedia.org/wiki/Reef_triggerfish), basic tools in c

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages