fallocate(2) System Calls Manual fallocate(2) fallocate - (libc -lc) #define _GNU_SOURCE /* See feature_test_macros(7) */ #include int fallocate(int fd, int mode, off_t offset, off_t size); . POSIX.1 posix_fallocate(3). fallocate() fd offset size . mode . . ( mode ) fallocate() offset size. ( stat(2)) offset+size . offset size . posix_fallocate(3) . offset size . FALLOC_FL_KEEP_SIZE mode offset+size . . FALLOC_FL_UNSHARE_RANGE mode . . . fallocate() . FALLOC_FL_PUNCH_HOLE ( 2.6.38) mode ( ) offset size . . . FALLOC_FL_PUNCH_HOLE FALLOC_FL_KEEP_SIZE mode OR ( stat(2)). FALLOC_FL_PUNCH_HOLE . : o XFS ( 2.6.38) o ext4 ( 3.0) o Btrfs ( 3.7) o tmpfs(5) ( 3.5) o gfs2(5) ( 4.16) FALLOC_FL_COLLAPSE_RANGE ( 3.15) mode . offset size . offset+size offset size . . offset size . fallocate() EINVAL . offset size ftruncate(2) . mode FALLOC_FL_COLLAPSE_RANGE. 3.15 FALLOC_FL_COLLAPSE_RANGE ext4 ( ) XFS. FALLOC_FL_ZERO_RANGE ( 3.15) mode offset size . . . . ( ) I/O ( ) . FALLOC_FL_KEEP_SIZE mode offset+size . FALLOC_FL_KEEP_SIZE. FALLOC_FL_ZERO_RANGE . : o XFS ( 3.15) o ext4 ( 3.15) o SMB3 ( 3.17) o Btrfs ( 4.16) FALLOC_FL_INSERT_RANGE ( 4.1) mode . offset size . offset ( ) size . size . FALLOC_FL_COLLAPSE_RANGE . fallocate() EINVAL. offset . ( ) ftruncate(2). mode FALLOC_FL_INSERT_RANGE. FALLOC_FL_INSERT_RANGE . XFS ( 4.1) ext4 ( 4.2). fallocate() . -1 errno . EBADF fd . EFBIG offset+size . EFBIG mode FALLOC_FL_INSERT_RANGE +len . EINTR signal(7). EINVAL offset 0 size 0. EINVAL mode FALLOC_FL_COLLAPSE_RANGE offset size . EINVAL mode FALLOC_FL_INSERT_RANGE offset . EINVAL mode FALLOC_FL_COLLAPSE_RANGE FALLOC_FL_INSERT_RANGE offset size . EINVAL mode FALLOC_FL_COLLAPSE_RANGE FALLOC_FL_INSERT_RANGE FALLOC_FL_COLLAPSE_RANGE FALLOC_FL_INSERT_RANGE. EINVAL mode FALLOC_FL_COLLAPSE_RANGE FALLOC_FL_ZERO_RANGE FALLOC_FL_INSERT_RANGE fd . EIO / . ENODEV fd . ( fd FIFO .) ENOSPC fd. ENOSYS fallocate(). EOPNOTSUPP fd mode fd. EPERM fd ( chattr(1)). EPERM mode FALLOC_FL_PUNCH_HOLE FALLOC_FL_COLLAPSE_RANGE FALLOC_FL_INSERT_RANGE fd ( chattr(1)). EPERM fcntl(2). ESPIPE fd FIFO. ETXTBSY mode FALLOC_FL_COLLAPSE_RANGE FALLOC_FL_INSERT_RANGE fd . . fallocate() 2.6.23 glibc 2.10. FALLOC_FL_* glibc 2.18. fallocate(1) ftruncate(2) posix_fadvise(3) posix_fallocate(3) 3 . . : . 6.18 8 2026 fallocate(2)