podivne chovani roury volane z perlu, zavirani souboru,...
Martin Povolny
xpovolny na aurora.fi.muni.cz
Úterý Listopad 6 18:29:14 CET 2001
Resim nasledujici zahadu:
V perlovem programu si nejprve otevru rouru na externi program:
neco jako
my $pipe = new IO::Pipe;
$pipe->writer("$Conf::fsa_path/fsa_ubuild -N -o $out_file")
pak do roury chvili zapisuji...
a nasledne ji zavru
my $ret = $pipe->close();
potom chci vysledny soubor dale zpracovavat knihovnou v c prilinkovanou k perlu
(knihovna soubor otevira pomoci tridy "ifstream")
my $fsa = FSA::load_dict($out_file, $Conf::fsa_path."/cz.lang");
a knihovna mi vrati "Cant open file..."
pokud ale chvili pockam
my $tf;
while ( ! ($tf = IO::File->new('<'.$out_file)) ) {
print STDERR "nelze otevřít soubors fsa -- spím 1s\n";
sleep 1;
}
$tf->close();
my $fsa = FSA::load_dict($out_file, $Conf::fsa_path."/cz.lang");
tak uz program >>vetsinou<< funguje...
bohuzel jen vetsinou, nekdy (pri vetsich datech) se mi stane, ze
soubor nelze otevrit ani po one sleep smycce,
nebo dokonce, ze funkce "load_dict" projde, ale knihovna nasledne nepracuje
spravne (soubor je ale i v tomto pripade vytvoren 100% spravne)
pokud vytvoreni souboru a praci s nim rozdelim do dvou damostatnych skriptu,
funguje vse naprosto perfektne...
Tusite nekdo v cem muze byt problem ?
--
Martin Povolný, xpovolny na fi.muni.cz, http://www.fi.muni.cz/~xpovolny
...one can now boot directly into emacs from LILO or GRUB,
and thus avoid the need for an operating system entirely... -- LWN
Další informace o konferenci Linux