首先,对任何草率的代码事先表示歉意-我对C还是比较陌生。我目前正在为OS入门类通过一些编码工作,但周末花费了太多时间试图我用蛮力解决了这个问题,我想是时候我应该放下自己的骄傲,努力在这里朝着正确的方向发展。它处理压缩基本文本文件,旨在利用Unix系统调用和管道。在fork()调用之后,一个进程应该处理读取文本文件(指定为命令行参数),然后通过管道将数据发送到另一个进程,该进程处理压缩并写入目标文件。在测试了该程序的非管道版本之后,我相当确定压缩工作是否按预期进行,但是我认为我的问题在于管道数据共享。根据一些业余调试,我认为没有任何事情通过。
该程序还会在以下行中提前终止:
分段错误(核心已转储)
这是代码本身:
(redacted)
有人可以找出问题所在吗?我会非常感激。
答案 0 :(得分:2)
在进行分叉之前创建管道。因为您正在每个过程中创建单独的管道。