Posted By: snake () on 'CZunix' Title: Re: buffer stdout streamu Date: Fri Sep 28 15:15:42 2007 > Neni to nejaka blbost? To, jestli vystup bude spojitej, nebo bufferovanej, > si ridi jen ten jej generujici program, takze si musis popovidat s kamaradem Blbost to neni a Tva domnenka je nespravna. Flushovani neridi program, ale system. Viz dale. > Fortranem :) Treba ja v perlu pouzivam STDOUT->autoflush(1); a pak se to > nebufferuje. > Ale nikdy jsem nezaznamenala, ze by se to chovalo jinak pri sypani ven > a sypani do souboru. Nicmene manzel mi tady rika, ze prej ten program man perlvar: $| If set to nonzero, forces a flush right away and after every write or print on the currently selected output channel. Default is 0 (regardless of whether the channel is really buffered by the system or not; $| tells you only whether you've asked Perl explicitly to flush after each write). STDOUT will typically be line buffered if output is to the terminal and block buffered otherwise... > se na to muze podivat, kam vystup leze, a muze se podle toho rozhodnout, > lec vetsina programu to nedela. Tak jen kdyby to nahodou ten Fortran Jo a ne. Program se muze rozhodnout a delat nejaky flushe navic, prestoze jede napriklad do souboru a system mu nahodi 4K buffer. Ale samotny zpusob bufferovani zavisi na systemu. Ja si takhle nabehl s perlovskym redirem do squidu, ktery na terminalu fungoval presne tak, jak jsem chtel, ale v pajpe ke squidu v ostrem chodu najednou nefachal a vsem se zastavil internet. Redirektor holt cekal na dalsi vstup, aby na vystup nacpal vice pismenek, jenze browsery zas cekaly na splneni prvniho pozadavku nez zaslaly dalsi... Problem byl evidentne v tom, ze terminal sel po lajne, jenze pri ostrem behu v pajpe po blocich. Resenim byl samozrejme ten autoflush. snake