简单的C开源项目

时间:2020-03-06 14:37:41  来源:igfitidea点击:

我一直在学习C,并且正在寻找一个(最好是非常简单的)开放源代码项目。比起实际的贡献,它很可能会涉及到更多的游戏和学习方面的知识,但这似乎是获得一些经验并了解C的真正用法的好方法。有任何想法吗?

解决方案

有许多用C语言编码的开源项目。如果我们只是想修补而不是贡献,那就选择一个经常使用的工具(这样我们就可以知道它的作用以及在哪里使用可能会更改/改进)。

如果我们正在寻找真正的建议,那么"较少"的传呼机是一个不错的开始。它以干净的方式编写,很简短,而且数量惊人

当然,这主要取决于我们认为简单的事情!我已经尝试过以简洁的方式编写的mutt邮件客户端,这使其易于扩展,但是我什至不假装了解其工作原理。

我们没有提到环境,因此我可以自由地假设使用GNU / Linux。我将进一步假设我们正在运行Debian,如果是这样,则可以非常轻松地将源代码下载到应用程序。只需运行以下命令:

apt-get source less

听起来很奇怪,但是我认为学习C的最好方法是为Python编写C扩展。有许多以某种方式使用Python C API的简单扩展,与之一起使用很有趣。 (如果我们不了解Python ^^,可能没那么有趣了)

这基本上就是我学习C的方法。对于小型模块,只需看Cheeseshop ^ Wpypi,就有很多用C编写的库。

否则,请检查一些简单的GNOME GUI应用程序。其中许多是用C编写的。

我们可能会发现,项目有趣到足以拥有一个平凡的开源社区,这些项目都涉及一些复杂性。野兽的本质:如果它真的不复杂(或者不是很复杂),那么它或者已经很好地解决了并且是标准的,或者不够有趣以至于不能引起人们的广泛关注。

当然,新问题域的出现打破了这种情况,因此,我们只需要构建一个非常聪明的东西,便可以在事后发现这一点……

就是说,考虑一下dillo,尽管头版仍在悄悄地开发版本2(基于fltk)。

如Steve所述,一些标准的UNIX实用程序(例如" less")可能是一个好主意。

我也在想也许轻量级的文本编辑器可能很酷,可以尝试黑客攻击。例如," Joe"是用C编写的,并且已获得GPL许可。同样,如果我们使用的是Windows,则" WinVi"编辑器已获得GPL许可,并使用C语言编写。

还是一个简单的基于控制台的某种游戏?最好是文字游戏,例如冒险/ RP类型的游戏?

如果我们想浏览一些好的代码,请查看sqlite源码。
我不知道我们是否可以为它做贡献或者修改它,但是至少值得一看,看看好,干净的C风格。

sqlite

我们已经知道哪些语言?我们知道Perl / Python / Ruby / Groovy等动态语言吗?

(在我看来)C最擅长的是涉及硬件访问,大量数学运算和高效算法的低级编程。

如果我们不尝试使用C来完成与动态语言相同的操作,则会获得更多的满足感,但是尝试将其用于擅长的事情。因此,请尝试一些硬件黑客!我们是否有数码相机,路由器,手机或者其他带有开源固件或者实用程序的小工具?尝试破解这些!尝试编写一些代码来查看二进制文件!如果我们对数学和科学感兴趣,请找到一些与我们最喜欢的科学有关的数值包,然后在代码中四处寻找。

最后,尝试看一下Linux内核。当然,这是一个庞大的代码库,包含数百万行代码,但它也具有极端的模块化和完善的文档记录。至少有两本关于该代码的非常好的书:《了解Linux内核》和《 Linux设备驱动程序》(后者可在线免费获得)。