无法在命名管道中写入

时间:2018-11-18 19:31:51

标签: c pipe mkfifo

在此代码中,当我打开写入管道时,我的程序崩溃了。

h c = [f x | (a,b) <- c, f <- b, x <- a]

一切似乎都很好,但是我的错误在哪里;

1 个答案:

答案 0 :(得分:1)

这是预期的行为。来自man 7 fifo

  

通常,打开FIFO块,直到另一端也打开。

因此,除非有人打开同一管道进行读取,否则您的open不会返回。您可能想添加O_NONBLOCK标志(并可能在编写时得到SIGPIPE),或重新访问设计。