Portál AbcLinuxu, 10. května 2025 08:20

Dotaz: rychlost sdtout vs. presmerovani do souboru

27.8.2006 08:17 hajoucha | skóre: 22
rychlost sdtout vs. presmerovani do souboru
Přečteno: 107×
Odpovědět | Admin
Dobry den,

kdyz spustim svuj program, vypisuje cosi na stdout. Kdyz ho pustim pres:

$./program > vypis.txt

a nasledne dam:

tail -f vypis.txt

tak to trva peknou chvili, nezli dostanu neco na obrazovku. Tj. nic se neztrati, jenom je to o poznani pomalejsi nez vypis na stdout. Krom toho se vypis neobjevuje plynule, ale vzdy po nejake dobe se "vyplivne" do souboru kus vypisu. Muzete mi prosim nekdo vysvetlit, cim to je? Pripadne jak dojit k plynulemu vypisu do souboru? Cilem je ulozit vystup z program do souboru, ale pritom za behu sledovat, co vypisuje. Program je napsan v C, zadne zaludnosti, jako shell pouzivam bash.

Mnohokrate dekuji :)

Zdravi Michal

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.8.2006 09:04 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: rychlost sdtout vs. presmerovani do souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Proc nepouzit tee?
27.8.2006 09:06 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: rychlost sdtout vs. presmerovani do souboru
Btw, to, ze do souboru nevypisuje kontinualne bude mozna tim, ze se vypis uklada do bufferu a az po jeho naplneni se zapise na disk. Zkus po kazdem vypisu do souboru pouzit fflush.
27.8.2006 09:13 hajoucha | skóre: 22
Rozbalit Rozbalit vše Re: rychlost sdtout vs. presmerovani do souboru

jo, tee jsem zkousel. Chova se to stejne. Vypada to na nejaky buffer nebo co. Jdu omrknout ty linky... :)

27.8.2006 09:09 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: rychlost sdtout vs. presmerovani do souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Něco podobného se kdysi řešilo tady:
http://www.abclinuxu.cz/forum/show/136974#13
Naštěstí ty jsi v trochu jiné situaci, protože autorem programu jsi ty sám, takže můžeš snadno nastavit line buffering pro stdout.
27.8.2006 09:25 hajoucha | skóre: 22
Rozbalit Rozbalit vše Re: rychlost sdtout vs. presmerovani do souboru- VYRESENO

Ahojda, takze jsem pridal do kodu radek:

setvbuf(stdout, NULL, _IONBF, 0);

a je vyreseno. Ted uz to bezi k me spokojenosti :)

Moc dekuji.

Zdravi Michal

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.