nix-rust / nix

Rust friendly bindings to *nix APIs
MIT License
2.63k stars 661 forks source link

API request: sync on MacOS #2376

Closed MrCroxx closed 5 months ago

MrCroxx commented 5 months ago

MacOS supports sync() in unistd.h.

man 2 sync

SYNC(2)                                                                           System Calls Manual                                                                           SYNC(2)

NAME
     sync - synchronize disk block in-core status with that on disk

SYNOPSIS
     #include <unistd.h>

     void
     sync(void);

DESCRIPTION
     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 a sync() call is issued frequently by the user process update(8) (about every 30
     seconds).

     The function fsync(2) may be used to synchronize individual file descriptor attributes.

SEE ALSO
     fsync(2), sync(8), update(8)

BUGS
     sync() may return before the buffers are completely flushed.

HISTORY
     A sync() function call appeared in Version 6 AT&T UNIX.

BSD 4                                                                                 June 4, 1993                                                                                BSD 4
(END)