我有两个过程。一种是生产者,它将数据写入以 O_RDWR 模式打开的 FIFO 文件。另一个进程是消费者。它使用文件指针以“读取模式”打开 FIFO。
当生产者向 FIFO 写入数据时,消费者正在使用 getline 从 FIFO 中读取数据。当生产者停止写入数据时,getline 返回 -1 并带有“ferror”。在生产者没有向 FIFO 写入任何数据的 2-3 小时后,getline 调用阻塞了消费者进程。
谁能解释为什么会这样?
我有两个过程。一种是生产者,它将数据写入以 O_RDWR 模式打开的 FIFO 文件。另一个进程是消费者。它使用文件指针以“读取模式”打开 FIFO。
当生产者向 FIFO 写入数据时,消费者正在使用 getline 从 FIFO 中读取数据。当生产者停止写入数据时,getline 返回 -1 并带有“ferror”。在生产者没有向 FIFO 写入任何数据的 2-3 小时后,getline 调用阻塞了消费者进程。
谁能解释为什么会这样?