我有一个项目,我必须从 .txt 中收集一些记录并使用 exec*() 对它们进行排序。当我调用 execl 时,我对其中一些(例如前 10 条记录)进行排序,同时(因为我在 execl 之前使用了 fork())我使用另一个 execl 对一些记录进行排序。但是问题是第二个execl的记录和第一个的记录是一样的。有谁知道一种处理记录以便在每个 execl 中对不同记录进行排序的方法?
提前致谢!
最佳答案
在高层次上,您需要让每个进程只处理文件的一部分。这意味着您需要与每个进程沟通他们需要处理文件的哪一部分。实现这一点有不同的选择,但其中一个是让每个进程在调用 exec()
之前跳过不应处理的行。或者,为每个进程设置不同的管道,主进程将输入馈送到每个工作进程。还有其他几种可能性。
关于使用execl从txt中收集数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21624766/