如何解决使用 poll() 管理多个子进程使用的管道中的读写
我有一个 C 语言程序,它读取包含 bash 命令的文件(作为参数传递给 main),例如:
文件 1 包含:
echo A
echo B
文件 2 包含:
echo C
echo D
通过 fork
,子进程将使用 stdout
执行的命令的 execv
写入管道,父进程读取它并将其打印在屏幕上。
现在,如果只有 1 个文件作为参数传递没有任何问题,但是如果两个文件作为参数传递(程序应该打印的输出),这是我想要的行为:
A
C
B
D
代替
A
B
C
D
我希望孩子写入管道,而父母并行读取管道。读取第一个文件的第一行并打印其输出,然后读取第二个文件的第一行并打印其输出,然后读取并打印第一个文件的第二行并打印其输出,然后读取第二个文件的第二行并打印其输出等
为此,我需要使用 poll()
函数。我知道这个函数可以帮助监控管道的读写,但我不太了解它的用途,我也没有从这个人那里得到太多关于它与管道一起使用的信息。
是否有可能获得一个示例,说明如何使用 poll 来监视多个子进程(如果将多个文件作为参数传递)以及多个子进程和父进程将使用的管道的管理?
>版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。