presmerovani std a err do tehoz souboru: synchronizace, buffering?

Bohumil Chalupa bochal na apollo.karlov.mff.cuni.cz
Pondělí Srpen 18 17:10:05 CEST 1997


Dobre odpoledne,

vsichni mne presvedcovali, ze neni problem presmerovat standardni vystup
i standardni chybovy vystup do tehoz souboru. V principu asi ne, ale chova
se to jinak, nez bych chtel.

Mam napr. program:

nohup ./program -param1 -param2 >> soubor.log 2>&1 &

(mimochodem, je tento zapis ekvivalentni zapisu
nohup ./program -param1 -param2 >> soubor.log 2>>soubor.log &
nebo neni? Chova se to podle meho stejne.)

kteryzto program vypisuje postupne tyto hlasky, stridave na std a err,
oznacim o: a e:

o: neco_delam
e: nedari_se
o: neco_delam
e: nedari_se
o: neco_delam
e: nedari_se
o: neco_delam
e: nedari_se
o: neco_delam
e: nedari_se

etc.  To ovsem jen v tom pripade, kdyz ho spustim v popredi a vystup
necham na terminal. Soubor.log podle prikladu vyse vypada jinak:

e: nedari_se
e: nedari_se
e: nedari_se
e: nedari_se
e: nedari_se
o: neco_delam
o: neco_delam
o: neco_delam
o: neco_delam
o: neco_delam

Coz, uznat, se mi dvakrat nelibi. Totiz ani jednou ne. :-(
Ve skutecnosti jsou tech rozsynchronizovanych radek spis
stovky nez desitky.
Poradi, prosim, nekdo, co s tim? Nebo mi vysvetlete, proc 
to tak je, jestli to jinak nejde.  :-))

Slackware 3.2, bash

Zdravi
           Bohumil Chalupa



Další informace o konferenci Linux