summaryrefslogtreecommitdiffstats
path: root/man2/copy_file_range.2
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:41:07 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:41:07 +0000
commit3af6d22bb3850ab2bac67287e3a3d3b0e32868e5 (patch)
tree3ee7a3ec64525911fa865bb984c86d997d855527 /man2/copy_file_range.2
parentAdding debian version 6.05.01-1. (diff)
downloadmanpages-3af6d22bb3850ab2bac67287e3a3d3b0e32868e5.tar.xz
manpages-3af6d22bb3850ab2bac67287e3a3d3b0e32868e5.zip
Merging upstream version 6.7.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man2/copy_file_range.2')
-rw-r--r--man2/copy_file_range.220
1 files changed, 10 insertions, 10 deletions
diff --git a/man2/copy_file_range.2 b/man2/copy_file_range.2
index 8bea2e8..aee9801 100644
--- a/man2/copy_file_range.2
+++ b/man2/copy_file_range.2
@@ -2,7 +2,7 @@
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
-.TH copy_file_range 2 2023-07-15 "Linux man-pages 6.05.01"
+.TH copy_file_range 2 2023-10-31 "Linux man-pages 6.7"
.SH NAME
copy_file_range \- Copy a range of data from one file to another
.SH LIBRARY
@@ -13,7 +13,7 @@ Standard C library
.B #define _GNU_SOURCE
.B #define _FILE_OFFSET_BITS 64
.B #include <unistd.h>
-.PP
+.P
.BI "ssize_t copy_file_range(int " fd_in ", off_t *_Nullable " off_in ,
.BI " int " fd_out ", off_t *_Nullable " off_out ,
.BI " size_t " len ", unsigned int " flags );
@@ -31,7 +31,7 @@ bytes of data from the source file descriptor
to the target file descriptor
.IR fd_out ,
overwriting any data that exists within the requested range of the target file.
-.PP
+.P
The following semantics apply for
.IR off_in ,
and similar statements apply to
@@ -57,14 +57,14 @@ The file offset of
is not changed, but
.I off_in
is adjusted appropriately.
-.PP
+.P
.I fd_in
and
.I fd_out
can refer to the same file.
If they refer to the same file, then the source and target ranges are not
allowed to overlap.
-.PP
+.P
The
.I flags
argument is provided to allow for future extensions
@@ -79,7 +79,7 @@ If the file offset of
is at or past the end of file, no bytes are copied, and
.BR copy_file_range ()
returns zero.
-.PP
+.P
On error,
.BR copy_file_range ()
returns \-1 and
@@ -189,13 +189,13 @@ or do not support cross-filesystem copy.
A major rework of the kernel implementation occurred in Linux 5.3.
Areas of the API that weren't clearly defined were clarified and the API bounds
are much more strictly checked than on earlier kernels.
-.PP
+.P
Since Linux 5.19,
cross-filesystem copies can be achieved
when both filesystems are of the same type,
and that filesystem implements support for it.
See BUGS for behavior prior to Linux 5.19.
-.PP
+.P
Applications should target the behaviour and requirements of Linux 5.19,
that was also backported to earlier stable kernels.
.SH STANDARDS
@@ -219,13 +219,13 @@ in a loop, and using the
and
.B SEEK_HOLE
operations to find the locations of data segments.
-.PP
+.P
.BR copy_file_range ()
gives filesystems an opportunity to implement "copy acceleration" techniques,
such as the use of reflinks (i.e., two or more inodes that share
pointers to the same copy-on-write disk blocks)
or server-side-copy (in the case of NFS).
-.PP
+.P
.B _FILE_OFFSET_BITS
should be defined to be 64 in code that uses non-null
.I off_in