FIFO 线程间通信

FIFO to communicate between threads

我有一个文件,其中包含我要向其发送电子邮件的邮件地址。

我已将工作分配给

为了在第一个任务和其他任务之间进行通信,我认为使用 FIFO(感谢 posix_mkfifo)是个好主意,每个 "sending task" 有一个 FIFO,并循环通过它们。因为我有时需要停止脚本,所以我在每次读取后保存地址文件的偏移量(在第一个任务中)。

问题是当我关闭 FIFO 时,偏移量可能在第 500 行(因此通过 FIFO 读取和发送了 500 个地址)但可能每个任务只处理了 5 行。 如何防止写入端 FIFO 的关闭停止其他任务以让它们处理队列?

我能够通过在 read/write 中打开 fifo 而不是仅在第二个任务

中读取来解决我的问题