使用open时会导致无限循环的原因是什么? (C,UNIX)

时间:2014-06-01 09:44:58

标签: c unix infinite-loop mkfifo

我用这个创建了一个fifo:mkfifo("myfifo", 0666);
现在,我想用inf fd = open("./myfifo",O_WRONLY);打开它,但这会让我陷入无限循环,为什么?

1 个答案:

答案 0 :(得分:4)

来自fifo(7)手册页:

  

在传递数据之前,必须在两端打开FIFO(读取和写入)。通常,打开FIFO块直到另一端打开。

你所拥有的不是无限循环。您的进程只是被阻塞,等待某些东西打开管道的另一端。