How to sync a file on FreeBSD?
C. P. Ghost
cpghost at cordula.ws
Fri Jul 22 11:33:15 UTC 2011
On Fri, Jul 22, 2011 at 8:44 AM, Unga <unga888 at yahoo.com> wrote:
> Hi all
> How to sync a file on FreeBSD (esp. on 8.1) to disk?
> I used fsync(2), but does not immediately flush to disk.
> I want my writing to a file (a log file) immediately available to other users to read.
It shouldn't matter: as soon as write(2) completes, the
system-wide file cache -- not the disk -- is updated, and
other users will transparently read(2) from that cache,
not from the disk.
What you probably want is to flush the userspace buffers
of your I/O library as soon as you write a line of output:
See fflush(3), set[v]buf(3)... You may also use a non-buffered
stream for writing logs.
fsync(2) has other uses. In particular, it is of NO use as
long as the logging application doesn't flush its I/O caches
> Best regards
Cordula's Web. http://www.cordula.ws/
More information about the freebsd-questions