#include <fcntl.h> int fsync(int fn);The synopsis for the POSIX implementation is
#include <unistd.h> int fsync(int fn);
You may use either header file in your program.
fsync
function flushes the output buffers to disk for the
UNIX style file whose file number is fn
. The fsync
function also performs additional
system-dependent operations to ensure that the data are accessible
later, even if the program or the system fails later. The file position
is unchanged. fsync
returns when the output buffers are flushed
or when an error is detected.
fsync
function returns 0, or EOF
if an error occurs.
fsync
is expensive for files that are processed using a temporary
copy because the file's entire contents must be copied each time fsync
is
called.
#include <fcntl.h> extern int num_updates; extern int fd; int rc; if (num_updates == 100) { rc = fsync(fd); /* Flush updates to disk. */ if (rc != 0) { puts("Error saving recent updates."); close(fd); abort(); } num_updates = 0; /* Reset update counter. */ }
afflush
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.