标签: c unix infinite-loop mkfifo
我用这个创建了一个fifo:mkfifo("myfifo", 0666); 现在,我想用inf fd = open("./myfifo",O_WRONLY);打开它,但这会让我陷入无限循环,为什么?
mkfifo("myfifo", 0666);
inf fd = open("./myfifo",O_WRONLY);
答案 0 :(得分:4)
来自fifo(7)手册页:
fifo(7)
在传递数据之前,必须在两端打开FIFO(读取和写入)。通常,打开FIFO块直到另一端打开。
你所拥有的不是无限循环。您的进程只是被阻塞,等待某些东西打开管道的另一端。