On Fri, 11 Mar 2005, ANDONE Mures wrote:

> undeva pe drum se pierd date. Intrebarea mea: De ce? Si unde se pierd
> datele? In perl? Sau la redirectare?
> Eu cred ca la redirectare. Va rog sa cititi mai jos, am un exemplu.

        La redirectare. Practic minunea asta de script forkuieste de 
cite ori poate, citeste cite o linie in cite un proces copil dupa care 
copilul iese.
        In momentul in care tu faci redirectarea STDIN, STDOUT si STDERR 
(si altele) sint mostenite de procesele copil, dar numai procesul tata 
are outputul controlat intru totul de shellul bash. Restul scriu si ele 
in acelasi filedescriptor insa nescriind sincron se pot pierde niste 
linii pe drum.

        Vezi mai jos:

>     open(FIS, "$file") or die("Could not open $file: $!");

        ++:
        select STDOUT; $| = 1;

>     while(<FIS>)

        Nu ma pot abtine in ciuda remarcii tale de la inceput: de ce nu 
while ($line=<FIS>) ?? Ca faci mai jos inca o atribuire si apoi print 
fix degeaba.

>         print $line;

        Eventual, pentru siguranta:
        print STDOUT $line;

        Pentru mai multe detalii perldoc -f open, perldoc -f select.

        Sau foloseste STDERR in loc de STDOUT si redirectezi 
filedescriptorul 2 in bash.

-- 
Any views or opinions presented within this e-mail are solely those of
the author and do not necessarily represent those of any company, unless
otherwise expressly stated.

--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui