[linux] stderr pipe redirection, buffering
Matus UHLAR - fantomas
uhlar na fantomas.sk
Čtvrtek Červen 7 15:50:45 CEST 2007
> > Otázka. Prečo je to tak?
On 07.06.07 15:29, Andrej Hosna wrote:
> Bufferovanie je rozdielne pre stdout a stderr. Pre stderr sa myslim vypisuje
> pri najneskor pri /n. (man setbuf)
...a je to tak preto, aby bol stderr vypisovany co najskor, zatialco stdout,
pokial nesmeruje na terminal, bude bufferovany, aby sa praca s nim co
najviac zefektivnila. Volat system pre zapis do suboru po kazdom riadku nie
je velmi efektivne, buffering sposobi, ze prikaz bude volany len raz za
X bytov.
> > Dá sa urobi» tak, aby sa poradie výstupov nezmenilo? Pomocou setvbuf?
> Ano
ano, ale naco?
> > Dá sa zisti» ako je nastavené bufrovanie?
> Ano, jednoducho z manualovej stranky.
> Normally all files are block buffered. When the first I/O operation occurs
> on a file, malloc(3) is called, and a buffer is obtained. If a stream
> refers to a terminal (as std-out normally does) it is line buffered. The
> standard error stream stderr is always unbuffered by default.
man stdio, pripadne man setbuf mozno odpovedia viac...
--
Matus UHLAR - fantomas, uhlar na fantomas.sk ; http://www.fantomas.sk/
Warning: I wish NOT to receive e-mail advertising to this address.
Varovanie: na tuto adresu chcem NEDOSTAVAT akukolvek reklamnu postu.
The 3 biggets disasters: Hiroshima 45, Tschernobyl 86, Windows 95
Daląí informace o konferenci linux