2012-06-20 1 views
2
나는 전용 액세스 읽기 '/ tmp를/XYZ'에있는 명명 된 파이프를 열려면 다음 코드를 사용하고

이름 여는 동안 : 문제는펄 :) (sysopen 중단 파이프

#!/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

차단 모드로 열었을 때 프로그램이 누군가 FIFO에 쓸 때까지 프로그램이 계속 실행되지 않습니다.

당신은 아마 그것을 비 블록 열려

: 그것 뿐이다

O_RDONLY | O_NONBLOCK 
+0

을, 고마워요! :-) –