„Mert különben blokkpuffereli a kimenetét sorpufferelés helyett (az stdout-ot, az stderr-t nem), ami – mint megtudtam – normális egy C programnál, de így nem lehet azonnal feldolgozni a kimenetét.”
Valahogy csak meg lehet oldani…
Meg lehet változtatni a pufferkezelést, de szeretném elkerülni a program újrafordítását. Esetleg több kimenetet generáltatni, hogy elõbb-utóbb elõbukkanjon a pufferbõl. Tehát egyik sem az igazi.
Amennyire informálódni sikerült, az a kimeneti streamet kezelõ függvénykönyvtár (C-hez nem konyítok, elnézést ha hülyeséget írok) okozza ezt a jelenséget, amivel fordítva lett.
Emiatt vált blokkpufferelésre a legtöbb program, ha pl. fájlba irányítjuk a kimenetét, ezt ki is lehet próbálni. A jelek szerint hasonló történik akkor is, ha programból hívok meg valamit. Ezt szeretném elkerülni valahogy.
„Win alatt minden jól mûködik, tehát ott nem változik meg a kimenet pufferelése.”
No de win alatt a programod számára a windows egy ugyanolyan környezetet emulál (memória, megszakítások), mintha dos alatt futtatnád. Tehát a programod nem is veheti észre a különbséget(, ameddig védet módba nem kapcsolsz át…)
Ez valszeg így van. Csak azt akartam érzékeltetni, hogy a windowsra fordított változatot meghívva flottul megy a kimenet feldolgozása.
„
legutóbbi hsz