0

私は2つのプロセスを持っています。1 つは、O_RDWR モードで開かれた FIFO ファイルにデータを書き込むプロデューサーです。もう 1 つのプロセスはコンシューマーです。ファイルポインタを使用して、FIFO を「読み取りモード」で開きます。

プロデューサが FIFO にデータを書き込むとき、コンシューマは getline を使用して FIFO からデータを読み取っています。プロデューサーがデータの書き込みを停止すると、getline は「ferror」で -1 を返します。プロデューサーが FIFO にデータを書き込まない状態で 2 ~ 3 時間経過すると、getline 呼び出しによってコンシューマー プロセスがブロックされます。

なぜこれが起こっているのか誰でも説明できますか?

4

0 に答える 0