如何用 C 语言练习 Unix 编程?

2024-05-09

经过五年的专业 Java(以及较小程度上的 Python)编程并慢慢感觉到我的计算机科学教育逐渐消失,我决定要拓宽我的视野/对世界的一般用处,并做一些(对我来说)感觉更重要的事情就像我真的对机器有影响一样。我选择学习 C 和 Unix 编程,因为我觉得这是许多最有趣的问题所在。

我的最终目标是能够专业地完成这项工作,如果没有其他原因,除了我每周必须花 40-50 小时在工作上支付账单,所以这也可能是我的编码类型想要变得更好。当然,你不会被雇用去做你以前没有做过的事情,所以现在我正在自己努力。

为此,我从 K&R 开始,这是一个很好的资源,部分原因是练习遍布每一章。之后我继续计算机系统:程序员的视角 https://rads.stackoverflow.com/amzn/click/com/013034074X,接下来是十章Unix 环境中的高级编程 https://rads.stackoverflow.com/amzn/click/com/0131411543。当我读完这本书时,我会读Unix网络编程 https://rads.stackoverflow.com/amzn/click/com/013490012X.

我在史蒂文斯的书中缺少的是缺乏编程问题;它们主要记录功能并提供示例,然后是一些章末问题。我觉得,如果我接受挑战,按照 K&R 的方式使用每一章中的知识,我会受益匪浅。我可以为每个函数编写一些测试程序,但这是一个不太理想的方法,因为(1)我可能会比面对一些外部挑战时更有动力,(2)我自然只会考虑使用该函数以我已经想到的方式。

所以,我想得到一些关于如何练习的建议。显然,我的第一选择是找到一些具有 Unix 编程挑战的资源。我还考虑过寻找并尝试为一些开源 C 项目做出贡献,但这有点令人畏惧,因为学习使用该软件然后学习代码库会产生一些开销。我能想到的唯一经常使用的开源 C 项目是 Python,我不确定它是否容易上手。

也就是说,我愿意接受各种建议,因为有些事情我什至没有想到。


重新发明了许多核心 Unix 实用程序。其中大部分都是(并且仍然)用 C 编写的,因此它们是开始学习的好方法。根据您的技能,选择更难或更容易的实用程序来复制。

尝试编写自己的 malloc。您将学到很多有关 Unix 和 C 编程的知识。

谷歌提供计算机科学操作系统课程并在那里做项目。许多学校在公共网站上都有这些项目,因此您可以获得所需的一切。Here http://www.cs.purdue.edu/homes/cs354/是普渡大学网站的链接。尝试一下 shell 项目;这很困难,但确实很有教育意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用 C 语言练习 Unix 编程? 的相关文章

随机推荐