2

次のコードを使用して、「/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

何が起こっているの?前もって感謝します!

4

1 に答える 1

4

ブロッキング モードで開いた場合、誰かが FIFO に書き込むまでプログラムは続行されません。

おそらくノンブロッキングで開きたいでしょう:

O_RDONLY | O_NONBLOCK
于 2012-06-20T09:58:33.650 に答える