ioctl_ficlonerange(2) System Calls Manual ioctl_ficlonerange(2) ioctl_ficlonerange, ioctl_ficlone - LIBRARY Standard C library (libc, -lc) #include /* FICLONE* */ #include int ioctl(int dest_fd, FICLONERANGE, struct file_clone_range *arg); int ioctl(int dest_fd, FICLONE, int src_fd); (<>), ioctl(2) , src_fd dest_fd , . . , , , . << >> (copy on write). ioctl (reflink) src_length src_fd src_offset dest_fd dest_offset, . src_length , ioctl -. : struct file_clone_range { __s64 src_fd; __u64 src_offset; __u64 src_length; __u64 dest_offset; }; , . FICLONE ioctl . -1, errno . ( ): EBADF src_fd ; dest_fd ; , src_fd, reflink. EINVAL . , , FIFO . , , . XFS Btrfs . EISDIR . EOPNOTSUPP , . EPERM dest_fd . ETXTBSY . . EXDEV dest_fd src_fd . Linux. Linux 4.5. They were previously known as BTRFS_IOC_CLONE and BTRFS_IOC_CLONE_RANGE, and were private to Btrfs. -- , fallocate(2) , - . . ioctl(2) Azamat Hackimov , Dmitriy S. Seregin , Yuri Kozlov ; GNU 3 , . . , , . Linux man-pages 6.06 31 2023 . ioctl_ficlonerange(2)