sync_file_range(2) System Calls Manual sync_file_range(2) sync_file_range - (libc -lc) #define _GNU_SOURCE /* feature_test_macros(7) */ #define _FILE_OFFSET_BITS 64 #include int sync_file_range(int fd, off_t offset, off_t nbytes, unsigned int flags); sync_file_range() fd . offset . nbytes nbytes offset . : offset (offset+nbytes-1) . flags : SYNC_FILE_RANGE_WAIT_BEFORE . SYNC_FILE_RANGE_WRITE . . SYNC_FILE_RANGE_WAIT_AFTER . flags 0 . . . . . ( btrfs) . . . SYNC_FILE_RANGE_WAIT_BEFORE SYNC_FILE_RANGE_WAIT_AFTER / ENOSPC . flags : SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE sync_file_range() . . SYNC_FILE_RANGE_WRITE . . . SYNC_FILE_RANGE_WAIT_BEFORE ( SYNC_FILE_RANGE_WAIT_AFTER) . SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE . SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE | SYNC_FILE_RANGE_WAIT_AFTER sync_file_range() . sync_file_range() 0 -1 errno . EBADF fd . EINVAL flags offset nbytes . EIO /. ENOMEM . ENOSPC . ESPIPE fd . sync_file_range2() ( PowerPC ARM) 64-bit . sync_file_range() fd offset. ( syscall(2) .) : int sync_file_range2(int fd, unsigned int flags, off_t offset, off_t nbytes); sync_file_range() . . 2.6.17. sync_file_range2() ARM 2.6.20 arm_sync_file_range(). 2.6.22 PowerPC. glibc glibc sync_file_range2() sync_file_range(). _FILE_OFFSET_BITS 64 sync_file_range x86 ARM 32-bit off_t 32 . fdatasync(2) fsync(2) msync(2) sync(2) 3 . . : . 6.18 8 2026 sync_file_range(2)