开始编写 unix 命令
Getting started with coding unix commands
我学习c和数据结构已经有一段时间了,我想看看我是否可以应用我所学的知识。我搜索了一下,发现我可以从 util linux 开始,但是,在我这样做之前,我想我会检查并可能涉足基本 unix 命令的代码,比如 "cat" .我能够理解代码的一部分可能试图做什么,但我无法将整个代码作为一个单元来理解。
例如,在 "cat" 代码中,声明并适当使用了指向输出缓冲区和输入缓冲区的指针,这是我能理解的。我无法理解的是像 io_blksize (stat_buf)
这样的代码部分,它没有任何关于它的作用的描述。或者声明为指向输入和输出缓冲区的指针的两个指针实际上如何对应于输入和输出缓冲区?
所以我的问题是,我如何处理这些类型的代码,我如何理解没有描述它所做的事情的东西(在上面给出的示例中)以及我如何在代码中进行和实施更改,以便我可以当我 运行 命令时看到变化 ?
(非常感谢我应该开始的参考资料或主题,这样我就可以将我学到的知识与如何修改命令代码联系起来。如果问题是抽象的,我也很抱歉。)
这是一个有点主观的问题,所以我的回答当然只是我的意见。
当您在阅读源代码时 运行 遇到不认识的内容时,联机帮助页是一个很好的起点。每个函数通常都有一个联机帮助页,例如man 2 read
或 man 3 printf
。除此之外,我觉得也许你应该在尝试阅读直接源代码之前获得更多的 Unix 基础,一本好书是 Unix 环境中的高级编程。我自己一直在研究它,发现我的 Unix 知识有了很大的提高。
只是我的两分钱。
我学习c和数据结构已经有一段时间了,我想看看我是否可以应用我所学的知识。我搜索了一下,发现我可以从 util linux 开始,但是,在我这样做之前,我想我会检查并可能涉足基本 unix 命令的代码,比如 "cat" .我能够理解代码的一部分可能试图做什么,但我无法将整个代码作为一个单元来理解。
例如,在 "cat" 代码中,声明并适当使用了指向输出缓冲区和输入缓冲区的指针,这是我能理解的。我无法理解的是像 io_blksize (stat_buf)
这样的代码部分,它没有任何关于它的作用的描述。或者声明为指向输入和输出缓冲区的指针的两个指针实际上如何对应于输入和输出缓冲区?
所以我的问题是,我如何处理这些类型的代码,我如何理解没有描述它所做的事情的东西(在上面给出的示例中)以及我如何在代码中进行和实施更改,以便我可以当我 运行 命令时看到变化 ?
(非常感谢我应该开始的参考资料或主题,这样我就可以将我学到的知识与如何修改命令代码联系起来。如果问题是抽象的,我也很抱歉。)
这是一个有点主观的问题,所以我的回答当然只是我的意见。
当您在阅读源代码时 运行 遇到不认识的内容时,联机帮助页是一个很好的起点。每个函数通常都有一个联机帮助页,例如man 2 read
或 man 3 printf
。除此之外,我觉得也许你应该在尝试阅读直接源代码之前获得更多的 Unix 基础,一本好书是 Unix 环境中的高级编程。我自己一直在研究它,发现我的 Unix 知识有了很大的提高。
只是我的两分钱。