🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52274

Re: Zapis do fifo

#52274
From: Adam Osuchowski
Date: Sun, 24 Jul 2011 14:01
33 lines
1734 bytes
piecia aka dracorp wrote:
> I aby teraz sterować mplayerem wystarczy pisać do fifo ale z poziomu 
> skryptu działa np. to:
> #v+
> `echo "pause" > $fifo_file`;
> #v-
> a nie działa to:
> #v+
> print $fifo_fh "pause\n";
> #v-
> Aczkolwiek przy uruchomionym skrypcie testowałem printa bezpośrednio z 
> terminala tj:
> #v-
> perl -e 'open($fifo_fh,"+</tmp/radiod.piecia.fifo"); print $fifo_fh "pause
> \n"; close $fifo_fh;'
> #v+ i stąd działało.
> Pytanie dlaczego?

Perl wewnętrznie tworzy bufory dla każdego otwartego uchwytu i domyślnie
nie są one automatycznie opróżniane po każdym zapisie. Dołóż na początku
skryptu:

use IO::Handle;

a po otwarciu fifo:

autoflush $fifo_fh;

> Przy okazji dlaczego dla trybu ">" przy otwieraniu fifo blokuje mi 
> skrypt? Przy czym dla ostatniego przykładu nieważne czy dam ">" czy 
> "+<"(lub "+>") to nie blokuje.

Jesteś pewien, że blokuje się na samym otwieraniu, tj. na syscallu open()?
Technical Details
Message-ID: <20110724140130.6b8b4567@polsl.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!polsl.pl!not-for-mail
References: <pan.2011.07.20.16.25.16@dracorp.one.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!polsl.pl!not-for-mail
From: Adam Osuchowski <someone@somewhere.com>
Newsgroups: pl.comp.lang.perl
Subject: Re: Zapis do fifo
Date: Sun, 24 Jul 2011 14:01:30 +0000 (UTC)
Organization: Politechnika Slaska, Gliwice
Lines: 33
Message-ID: <20110724140130.6b8b4567@polsl.pl>
References: <pan.2011.07.20.16.25.16@dracorp.one.pl>
NNTP-Posting-Host: hydra.ck.polsl.pl
Mime-Version: 1.0
X-Trace: polsl.pl 1311516090 3361 2a01:1d8:1:1::11 (24 Jul 2011 14:01:30 GMT)
X-Complaints-To: news@polsl.pl
NNTP-Posting-Date: Sun, 24 Jul 2011 14:01:30 +0000 (UTC)
In-Reply-To: <pan.2011.07.20.16.25.16@dracorp.one.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit