c语言多进程_学习C语言的你知道这些C语言中的开源项目吗?


说在前面:小伙伴们在学习的过程中难免会遇到很多的困难,有的是初学不知道如何入手,亦或是想要继续提升自己,小编为了帮助大家解决学习问题,大家可以点击上方我的头像私信我发送:“学 习”两个字,我将会针对性的帮助解答你学习上的问题和发送你学习资料哦,大家一起进步

e0088047ef00927959b0ef39118d6c10.png

C语言

代码行数统计结果如下:

b8c59613df5d8105ebde05ead9d9b804.png

C语言

不是一个理想的服务器压力测试工具,因为能达到的并发连接数远远不够,后面我们可以考虑对它进行优化改进。

2. Tinyhttpd

tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有356行(不包括注释和空行),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质,也可以学习linux套接字编程的基本流程。

3. Boa

boa是一个非常小巧的Web服务器,其可执行代码60KB不到。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa最初的设计目标是速度和安全。小巧也就意味着它的功能很简单,但至今为止还是有人会选用它作为嵌入式web服务器,因为它能满足基本的网页服务功能。代码量7000行不到,统计结果如下:

b94a66df8ccc7ac5f0de06ad2ed28c03.png

C语言

Boa源码编译时有些错误,关于debug这些错误网上有许多指导教程。

4. libevent

Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动(event-driven),高性能,轻量级;源代码相当精炼、易读;跨平台,支持 Linux,*BSD, Mac OS X, Solaris, Windows;支持多种 I/O 多路复用技术,/dev/poll, kqueue(2), event ports, POSIX select(2), Windows select(), poll(2),and epoll(4)。

著名分布式缓存软件memcached也是基于libevent,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能。

代码统计如下:

b718df79650df6600f8910775a2a36dd.png

C语言

代码量有点多,阅读起来会吃力一些。

5. Libev

libev是libevent之后的一个事件驱动的编程框架,其接口和libevent基本类似。据官方介绍,其性能比libevent还要高,bug比libevent还少,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reactor模式,效率较高,并且代码精简(4.22版本6000多行),是学习事件驱动编程的很好的资源。官网:http://software.schmorp.de/pkg/libev.html

代码统计如下:

8b040653809b3da1a4f89337e1b47cff.png

C语言

6. Memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态数据库驱动网站的速度。它是一个基于内存的“键值对”存储,用于存储数据库调用、API调用或页面引用结果的直接数据,如字符串、对象等。

代码统计:

97b1a6aedc806aeb271ac7864ba639c6.png

C语言

不到2万行的代码,还是可以接受的。

7. CJSON

cJSON是C语言中的一个JSON编解码器,很是轻量级,C文件只有500多行,速度也很是理想。cJSON也存在几个弱点,虽然功能不是很是强大,但cJSON的小身板和速度是最值得赞赏的。其代码被很好地维护着,结构也简单易懂,可以作为一个很好的C语言项目进行学习。

8. SQLite

SQLite 是一个进程内库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。阅读其代码可以对关系型数据库的实现细节有深入的了解。特别是数据的组织、磁盘访问和数据一致性的保证等。

代码量统计:

3a43c9781bab4e3124a2fe3ad6ed6061.png

C语言

13万行+的代码,有点可怕。

9. GoAhead

GoAhead是一个开源(商业许可)、简单、轻巧、功能强大、可以在多个平台运行的嵌入式Web Server。是目前为止最成熟、功能最全的嵌入式web服务器。它还有一个加强版叫appweb。

代码统计:

97c89d10e2d3b3a465e3bf13102bd8f4.png

C语言

12万行+,看起来挺可怕。

10. c-algorithms

一个常用算法和数据结构的集合。

代码统计:

c91cc51e3175f3e7bcdc2b3f3a5c498e.png

C语言

7000多行,小意思。

b5aa4a343b9b46a21e7e3c9eeccdf0de.png

C语言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值