The
sync() function forces a write of dirty (modified) buffers in the block buffer cache out to disk. The kernel keeps this information in core to reduce the number of disk I/O transfers required by the system. As information in the cache is lost after a system crash, kernel thread
ioflush ensures that dirty buffers are synced to disk eventually. By default, a dirty buffer is synced after 30 seconds, but some filesystems exploit
ioflush features to sync directory data and metadata faster (after 15 and 10 seconds, respectively).
The function
fsync(2) may be used to synchronize individual file descriptor attributes.