我正在使用以下代码打开位于'/ tmp / xyz'的命名管道,以便进行只读访问:
#!/usr/bin/perl
use strict;
use Fcntl;
...
sysopen(FIFO, "/tmp/xyz", O_RDONLY) or die ("opening named pipe failed: $!\n");
...
问题是,sysopen在调用时挂起。在执行调用后,它既不会'死'也不会代码。
输出ls -la / tmp / xyz:
prw-r--r-- 1 user group 0 Jun 20 11:45 /tmp/xyz
有人知道,发生了什么?提前谢谢!
答案 0 :(得分:4)
您在阻止模式下打开它,程序将不会继续,直到有人写入FIFO。
你可能想要打开它非阻塞:
O_RDONLY | O_NONBLOCK