抽象一个linux 下面 工具库

本文提出了为提高C语言开发效率而构建的一套工具链设想,包括log功能、控制台功能、文件解析等,并讨论了通用链表、时间函数、字符串处理等功能的封装,以及数据库引擎、线程和socket的封装等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开源软件看多了,难免有一些想法,一直在抽象一个工具链,C语言开发速度慢也应该跟代码重用度低有关,但每个软件都要应该有一系列的

辅助工具。

下面把我抽象出的 内容整理一下:

log 功能:支持log 级别, 可记录到syslog, file,console。

控制台功功能:可以远程登录系统,设置log级别,随时查看系统运行情况,调试问题。

文件解析:支持解析配置文件,文件内以目录分级【】,可带注释。

通用链表:C语言结构内自引用时可以用通用链表代替,链表按带锁,不带锁,带读写锁。

时间函数:对常用时间函数封装

字符串处理包装:由于历史原因,C语言很多字符串处理函数不是很好用,包括线程安全,NULL指针问题, 同时提供一些字符串解析函数。

数据库引擎抽象:抽象数据库操作接口,可以注册常用数据库engine,用数据库提供的client 库 实现具体操作,文件解析即是此引擎的一个实现。

线程封装:对pthread lib 库封装,包括 锁,读写锁,条件变量,属性的封装,通过pthread lib库提供的线程私有数据 实现线程安全封装。

socket 封装:socket 系统调用封装,异步机制封装 poll, select epoll,kqueue, libevent 是个好例子.

哈希表实现:实现容器,大对象存取及查找。

简单数据库:实现一个数据库,只实现简单功能,关系型数据库,实现数据永久存取,family/key ,可借鉴sqlite.

内存池:高性能系统中内存的分配及回收应该都摒弃malloc, free 即用即分配策略,内存池是必经之路。

通用task 实现:实现task queue 接口,线程处理task queue.

在 googlecode上建立了此项目,代码托管在此处,目前只实现了一部分功能。

http://code.google.com/p/spider-tool/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值