我有一个练习要做,我需要用 C 编写代码,命令相当于cat和nl,只使用系统调用。给我们的系统调用是 open()、close()、read() 和 write()。
我已经完成了等效的“cat”,它似乎运行良好,现在我需要做“nl”,但我无法逐行编写。
这个想法是使用尽可能少的系统调用。
我知道我需要在缓冲区中找到“\n”,我可以做一段时间循环遍历缓冲区并找到“\n”位置(我们称之为 X),然后将 X 个字节写入标准输出。
但是循环遍历缓冲区中的所有字符以搜索行尾对我来说感觉不对,但我不知道我还能怎么做......
重要编辑:
我认为你们中的一些人错过了我的问题的重点......我不需要解释如何做到这一点,这不是我的问题。我知道该怎么做(或者有一个很好的主意,我只是还没有尝试过)。“问题”是,逐个字符地遍历缓冲区、文件或其他内容以查找行尾(无论如何)是不正确的。我并不是说这不是答案,或者我不允许这样做那样做,我只是在谈论我的想法。这样做似乎是一种奇怪的方式,仅此而已......但如果是这样的话,那就是我问题的答案。
我感谢大家的帮助:)