值得学习和练手的C/C++开源项目

转载声明
html

本文转自公众号CodeSheep程序媛驿站获受权转载,如需转载请联系原公众号。linux

原文连接:C/C++领域的练手开源项目,小伙伴们接好git

伙伴们你们好,首先程序媛祝你们春节快乐!


话说以前其实已经推荐过Java领域的一些值得初学者学习和练手的开源项目

5个值得学习和练手的企业级开源项目!(JAVA)github

今天应你们要求,再来继续推荐几个我收藏的,关于C语言和C++领域的适合初学者学习和练手的开源项目,供你们参考。web

学完编程语言感受还只是玩具,其实也挺常见,主要是由于没有足够的实战和练手,花点时间好好研读这些开源项目大有裨益。你们能够认真吸取这些项目并真正转化为本身的技能点,这样之后不论是复试写简历亦或是求职找工做,也能更加从容一点!算法

必需要说的是,不像Python,Java等开源项目通常都具有美观的可视化界面、网页、甚至手机App;而C语言和C++写的项目通常很是朴素,大多运行于命令行那个简单的黑乎乎界面,甚至彻底运行于后台。macos


 Tinyhttpd 编程

项目名称: Tinyhttpd后端

项目简介:Tinyhttpd 是J. David Blackstone在1999年写的一个不到 500 行的超轻量型 Http Server,用来学习很是不错,能够帮助咱们真正理解服务器程序的本质。建议源码阅读顺序为:main->startup->accept_request->execute_cgi, 通晓主要工做流程后再仔细把每一个函数的源码看一看。这500行代码吃透了,C语言的功底就会大幅提高。缓存

【注:图片来源于:www.cnblogs.com/nengm1988/p/7816618.html】

项目源码:https://github.com/EZLippi/Tinyhttpd


 tmux 

项目名称: tmux

项目简介: tmux一个炫酷的终端复用软件,它提供了一个很是易于使用的命令行界面,可横向和纵向分割窗口,窗格能够自由移动和调整大小,并且还能够经过交互式菜单来选择窗口、会话及客户端。相似的终端复用器还有 GNU Screen。Tmux 与它功能类似,可是更易用,也更强大。大名鼎鼎的阮一峰老师还写过tmux的使用教程,你们也能够看一看

项目源码:https://github.com/tmux/tmux


 musikcube 

项目名称: musikcube

项目简介: musikcube是一个使用C ++编写的跨平台,运行于终端上的音乐播放器。musikcube能够在Windows,macos和linux上轻松编译和运行。它也能够在带有raspbian的树莓派上很好地运行,而且能够设置为流音频服务器。炫酷得一腿。

项目源码:https://github.com/clangen/musikcube


 MyTinySTL 

项目名称: MyTinySTL

项目简介: 不少人表示学完C++不知道用来干什么,我以为学完C++的第一个练手的好机会那就是本身试着实现一个小型的STL库。MyTinySTL的做者它就用 C++11 从新复写了一个小型 STL(容器库+算法库)。代码结构清晰规范、包含中文文档与注释,而且自带一个简单的测试框架,很是适合新手学习与参考!

项目源码:https://github.com/Alinshans/MyTinySTL


 oatpp 

项目名称: oatpp

项目简介: 咱们知道Java领域的Web框架很是繁荣,最知名的当属Spring全家桶,而C语言和C++阵营则几乎没有。那oatpp则是一个轻量、跨平台、高性能、彻底零依赖,用纯 C++ 实现的 Web 框架,实在是可贵,小伙伴们能够学习学习。

项目源码:https://github.com/oatpp/oatpp


 muduo 

项目名称: muduo

项目简介: muduo是一个基于Boost库实现的现代C++高并发网络库,由陈硕大神编写。它一个高质量的事件驱动型的网络库,其核心代码不超过4500行,使用 non-blocking IO(IO multiplexing) + one loop per thread模型,适合开发 Linux 下的多线程服务端应用程序,经过阅读源码还可学习到 C++ 语言、Linux 网络编程等后端知识。

项目源码:https://github.com/chenshuo/muduo


 CppNet 

项目名称: CppNet

项目简介: CppNet一个封装在 TCP 协议上的 Proactor 模式 multi-thread 网络库。包含 OS 接口调用、回调处理、定时器、缓存管理等,这里有从操做系统到应用层的全部网络细节,便于初学者学习和实践。

  • 简单:只导出了最少许的接口,其声明都相似系统 socket API。对客户端而言,只新增了一个 buffer 类型

  • 快速:采用性能最优的 epoll 和 IOCP 作事件驱动。每一个链接都独享一个内存池,从内存池中申请的内存都由智能指针管理

  • 清晰:结构上分为事件驱动,会话管理,接口三层,经过回调向上通知。模块之间职责分工明确,最大的类不超过 500 行代码

项目源码:https://github.com/caozhiyi/CppNet


天天进步一点点!Peace!

 做者:CodeSheep

编辑:西瓜媛

本文分享自微信公众号 - 程序媛驿站(CXY_stage)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索