使用execl从txt中收集数据

标签 c parallel-processing fork

我有一个项目,我必须从 .txt 中收集一些记录并使用 exec*() 对它们进行排序。当我调用 execl 时,我对其中一些(例如前 10 条记录)进行排序,同时(因为我在 execl 之前使用了 fork())我使用另一个 execl 对一些记录进行排序。但是问题是第二个execl的记录和第一个的记录是一样的。有谁知道一种处理记录以便在每个 execl 中对不同记录进行排序的方法?

提前致谢!

最佳答案

在高层次上,您需要让每个进程只处理文件的一部分。这意味着您需要与每个进程沟通他们需要处理文件的哪一部分。实现这一点有不同的选择,但其中一个是让每个进程在调用 exec() 之前跳过不应处理的行。或者,为每个进程设置不同的管道,主进程将输入馈送到每个工作进程。还有其他几种可能性。

关于使用execl从txt中收集数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21624766/

相关文章:

bash - GNU Parallel - 检测并行运行的命令已完成

c++ - 如何告诉 valgrind 对 fork 进程进行 memcheck?

c - 自由(): invalid next size (normal) while executing free

c - 利用 jmp_buf 结构中的缓冲区溢出

parallel-processing - Windows Azure : Parallelization of the code

c - C 中的信号量示例

Unix 中的 C : fork, waitpid 和管道

c - 在 C 中打印字符串和空字符的概念

c - 是否有可能找到不适合 %.6g 的 float

python - 通过 Python 并行读取 MySQL 数据库