line-bufferred file

Michal Marek michal.marek na matfyz.cz
Pondělí Červen 6 12:33:34 CEST 2005


On Sun, Jun 05, 2005 at 06:15:38PM +0200, Michal Rybarik wrote:
> potrebujem patchnut C-ckovy zdrojak tak, aby sa zapis do suboru 
> bufferroval po riadkoch.
> ak je subor otvarany cez fopen(), to viem - staci zavolat 
> setlinebuf(subor) a je to.
> mam tu vsak teraz iny zdrojak, kde je subor otvarany cez open().
> nasiel som ze snad by mohlo pomoct fcntl a nastavit flag O_DIRECT, ale 
> nepomaha to.

write() je syscall, ktery proste zapise do souboru to co dostane,
nastaveni O_DIRECT jenom ovlivnuje, jak moc bude kernel cachovat --
ostatni aplikace nepoznaji rozdil. Na (radkove) bufferovani by byla
potreba nejaka nadstavba, nabizi se fdopen(fd, "w") a dal zapisovat pres
funkce stdio :)

-- Michal Marek


Další informace o konferenci Linux