ioctl_fideduperange(2) System Calls Manual ioctl_fideduperange(2) ioctl_ficlonerange - LIBRARY Standard C library (libc, -lc) #include /* Definition of FIDEDUPERANGE and FILE_DEDUPE_* constants*/ #include int ioctl(int src_fd, FIDEDUPERANGE, struct file_dedupe_range *arg); , ioctl(2) , src_fd dest_fd , (<<>>, deduplication). . , . , , , . << >> (copy on write). ioctl << >> src_length src_fd src_offset. : struct file_dedupe_range { __u64 src_offset; __u64 src_length; __u16 dest_count; __u16 reserved1; __u32 reserved2; struct file_dedupe_range_info info[0]; }; , . reserved1 reserved2 . . dest_count, : struct file_dedupe_range_info { __s64 dest_fd; __u64 dest_offset; __u64 bytes_deduped; __s32 status; __u32 reserved; }; src_length dest_fd logical_offset. reserved . src_fd , dest_fd . file_dedupe_range file_dedupe_range_info . src_length , 16 . . , , src_fd, dest_fd, dest_fd . ioctl bytes_deduped , status -- . , status FILE_DEDUPE_RANGE_DIFFERS. status FILE_DEDUPE_RANGE_SAME, -- , FILE_DEDUPE_RANGE_DIFFERS, . -1, errno . Possible errors include (but are not limited to) the following: EBADF src_fd ; dest_fd ; , src_fd, . EINVAL . , , FIFO . , , . XFS Btrfs . EISDIR . ENOMEM dest_count - , . EOPNOTSUPP , . EPERM dest_fd . ETXTBSY . . EXDEV dest_fd src_fd . , . Linux. Linux 4.5. It was previously known as BTRFS_IOC_FILE_EXTENT_SAME and was private to Btrfs. -- , fallocate(2) , - . . ioctl(2) Azamat Hackimov , Dmitriy S. Seregin , Yuri Kozlov ; GNU 3 , . . , , . Linux man-pages 6.06 31 2023 . ioctl_fideduperange(2)