#include <unistd.h>
The sync() function writes all information in memory that should be on disk, including modified super blocks, modified inodes, and delayed block I/O.
Unlike fsync(3C), which completes the writing before it returns, sync() schedules but does not necessarily complete the writing before returning.
The sync() function should be used by applications that examine a file system, such as fsck(1M), and df(1M), and is mandatory before rebooting.
df(1M), fsck(1M), fsync(3C)