Rollup merge of #95294 - sourcefrog:doc-copy, r=dtolnay
Document Linux kernel handoff in std::io::copy and std::fs::copy
This commit is contained in:
commit
e332f3b45e
@ -1729,11 +1729,17 @@ pub fn rename<P: AsRef<Path>, Q: AsRef<Path>>(from: P, to: Q) -> io::Result<()>
|
|||||||
/// This function currently corresponds to the `open` function in Unix
|
/// This function currently corresponds to the `open` function in Unix
|
||||||
/// with `O_RDONLY` for `from` and `O_WRONLY`, `O_CREAT`, and `O_TRUNC` for `to`.
|
/// with `O_RDONLY` for `from` and `O_WRONLY`, `O_CREAT`, and `O_TRUNC` for `to`.
|
||||||
/// `O_CLOEXEC` is set for returned file descriptors.
|
/// `O_CLOEXEC` is set for returned file descriptors.
|
||||||
|
///
|
||||||
|
/// On Linux (including Android), this function attempts to use `copy_file_range(2)`,
|
||||||
|
/// and falls back to reading and writing if that is not possible.
|
||||||
|
///
|
||||||
/// On Windows, this function currently corresponds to `CopyFileEx`. Alternate
|
/// On Windows, this function currently corresponds to `CopyFileEx`. Alternate
|
||||||
/// NTFS streams are copied but only the size of the main stream is returned by
|
/// NTFS streams are copied but only the size of the main stream is returned by
|
||||||
/// this function. On MacOS, this function corresponds to `fclonefileat` and
|
/// this function.
|
||||||
/// `fcopyfile`.
|
///
|
||||||
/// Note that, this [may change in the future][changes].
|
/// On MacOS, this function corresponds to `fclonefileat` and `fcopyfile`.
|
||||||
|
///
|
||||||
|
/// Note that platform-specific behavior [may change in the future][changes].
|
||||||
///
|
///
|
||||||
/// [changes]: io#platform-specific-behavior
|
/// [changes]: io#platform-specific-behavior
|
||||||
///
|
///
|
||||||
|
@ -39,6 +39,16 @@ use crate::mem::MaybeUninit;
|
|||||||
/// Ok(())
|
/// Ok(())
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
///
|
||||||
|
/// # Platform-specific behavior
|
||||||
|
///
|
||||||
|
/// On Linux (including Android), this function uses `copy_file_range(2)`,
|
||||||
|
/// `sendfile(2)` or `splice(2)` syscalls to move data directly between file
|
||||||
|
/// descriptors if possible.
|
||||||
|
///
|
||||||
|
/// Note that platform-specific behavior [may change in the future][changes].
|
||||||
|
///
|
||||||
|
/// [changes]: crate::io#platform-specific-behavior
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn copy<R: ?Sized, W: ?Sized>(reader: &mut R, writer: &mut W) -> Result<u64>
|
pub fn copy<R: ?Sized, W: ?Sized>(reader: &mut R, writer: &mut W) -> Result<u64>
|
||||||
where
|
where
|
||||||
|
Loading…
x
Reference in New Issue
Block a user