mirror of https://github.com/python/cpython
gh-93180: Update os.copy_file_range() documentation (#93182)
This commit is contained in:
parent
2c3fe5eeb2
commit
2dece90808
|
@ -798,18 +798,32 @@ as internal buffering of data.
|
|||
Copy *count* bytes from file descriptor *src*, starting from offset
|
||||
*offset_src*, to file descriptor *dst*, starting from offset *offset_dst*.
|
||||
If *offset_src* is None, then *src* is read from the current position;
|
||||
respectively for *offset_dst*. The files pointed by *src* and *dst*
|
||||
respectively for *offset_dst*.
|
||||
|
||||
In Linux kernel older than 5.3, the files pointed by *src* and *dst*
|
||||
must reside in the same filesystem, otherwise an :exc:`OSError` is
|
||||
raised with :attr:`~OSError.errno` set to :data:`errno.EXDEV`.
|
||||
|
||||
This copy is done without the additional cost of transferring data
|
||||
from the kernel to user space and then back into the kernel. Additionally,
|
||||
some filesystems could implement extra optimizations. The copy is done as if
|
||||
both files are opened as binary.
|
||||
some filesystems could implement extra optimizations, such as the use of
|
||||
reflinks (i.e., two or more inodes that share pointers to the same
|
||||
copy-on-write disk blocks; supported file systems include btrfs and XFS)
|
||||
and server-side copy (in the case of NFS).
|
||||
|
||||
The function copies bytes between two file descriptors. Text options, like
|
||||
the encoding and the line ending, are ignored.
|
||||
|
||||
The return value is the amount of bytes copied. This could be less than the
|
||||
amount requested.
|
||||
|
||||
.. note::
|
||||
|
||||
On Linux, :func:`os.copy_file_range` should not be used for copying a
|
||||
range of a pseudo file from a special filesystem like procfs and sysfs.
|
||||
It will always copy no bytes and return 0 as if the file was empty
|
||||
because of a known Linux kernel issue.
|
||||
|
||||
.. availability:: Linux kernel >= 4.5 or glibc >= 2.27.
|
||||
|
||||
.. versionadded:: 3.8
|
||||
|
|
Loading…
Reference in New Issue