i.
On Fri, 28 Nov 2008 14:55:43 +0100, Phil Knirsch wrote:
Maybe i wasn't clear enough. But take for example the difference
between xchat and say, syslog. I'd be really unhappy if i'd loose 1
hour of syslog data in the event of a system crash, but i couldn't
care less if i'd loose 1 hour of xchatlogs during that time. So it is
in that case application specific in a way, and the kernel can't (and
shouldn't) semantically know how important your data is that you
write with it.
Well, it does, in a way. If you absolutely want to have your data on
the disk you have to call flush(). If you do not you're at the mercy
of, well, whatever governs data storage these days. But that has
always been the case.
If the kernel default is to flush un-flush()-ed data only every hour
then, well, then that's that. Nobody ever guaranteed writes every
few seconds.
Retrofitting buffering into every application (or into glibc) does not
strike me as an elegant solution. Besides, it wastes memory.