欢迎大家来到IT世界,在知识的湖畔探索吧!
关于C语言和C++领域的适合初学者学习和练手的开源项目,供大家参考。
学完编程语言感觉还只是玩具,其实也挺常见,主要是因为没有足够的实战和练手,花点时间好好研读这些开源项目大有裨益。大家可以认真吸收这些项目并真正转化为自己的技能点,这样以后不管是复试、写简历亦或是求职找工作,也能更加从容一点!
必须要说的是,不像Python,Java等开源项目一般都具备美观的可视化界面、网页、甚至手机App;而C语言和C++写的项目一般非常朴素,大多运行于命令行那个简单的黑乎乎界面,甚至完全运行于后台。
Tinyhttpd
项目名称: Tinyhttpd
项目简介:Tinyhttpd 是J. David Blackstone在1999年写的一个不到 500 行的超轻量型 Http Server,用来学习非常不错,可以帮助我们真正理解服务器程序的本质。建议源码阅读顺序为:main ->startup ->accept_request ->execute_cgi, 通晓主要工作流程后再仔细把每个函数的源码看一看。这500行代码吃透了,C语言的功底就会大幅提升。
欢迎大家来到IT世界,在知识的湖畔探索吧!
tmux
项目名称: tmux
项目简介: tmux一个炫酷的终端复用软件,它提供了一个非常易于使用的命令行界面,可横向和纵向分割窗口,窗格可以自由移动和调整大小,而且还可以通过交互式菜单来选择窗口、会话及客户端。类似的终端复用器还有 GNU Screen。Tmux 与它功能相似,但是更易用,也更强大。大名鼎鼎的阮一峰老师还写过tmux的使用教程,大家也可以看一看
musikcube
项目名称: musikcube
项目简介: musikcube是一个使用C ++编写的跨平台,运行于终端上的音乐播放器。musikcube可以在Windows,macos和linux上轻松编译和运行。它也可以在带有raspbian的树莓派上很好地运行,并且可以设置为流音频服务器。炫酷得一腿。
MyTinySTL
项目名称: MyTinySTL
项目简介: 很多人表示学完C++不知道用来干什么,我觉得学完C++的第一个练手的好机会那就是自己试着实现一个小型的STL库。MyTinySTL的作者它就用 C++11 重新复写了一个小型 STL(容器库+算法库)。代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,非常适合新手学习与参考!
oatpp
项目名称: oatpp
项目简介: 我们知道Java领域的Web框架非常繁荣,最知名的当属Spring全家桶,而C语言和C++阵营则几乎没有。那oatpp则是一个轻量、跨平台、高性能、完全零依赖,用纯 C++ 实现的 Web 框架,实在是难得,小伙伴们可以学习学习。
muduo
项目名称: muduo
项目简介: muduo是一个基于Boost库实现的现代C++高并发网络库,由陈硕大神编写。它一个高质量的事件驱动型的网络库,其核心代码不超过4500行,使用 non-blocking IO(IO multiplexing) + one loop per thread模型,适合开发 Linux 下的多线程服务端应用程序,通过阅读源码还可学习到 C++ 语言、Linux 网络编程等后端知识。
CppNet
项目名称: CppNet
项目简介: CppNet一个封装在 TCP 协议上的 Proactor 模式 multi-thread 网络库。包含 OS 接口调用、回调处理、定时器、缓存管理等,这里有从操作系统到应用层的所有网络细节,便于初学者学习和实践。
- 简单:只导出了最少量的接口,其声明都类似系统 socket API。对客户端而言,只新增了一个 buffer 类型
- 快速:采用性能最优的 epoll 和 IOCP 做事件驱动。每个连接都独享一个内存池,从内存池中申请的内存都由智能指针管理
- 清晰:结构上分为事件驱动,会话管理,接口三层,通过回调向上通知。模块之间职责分工明确,最大的类不超过 500 行代码
关注我:带你遨游代码的世界~
获取更多:私信 “资料” 获取
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/98008.html