Rollup merge of #85288 - Geal:clarify-std-io-read, r=dtolnay
add an example to explain std::io::Read::read returning 0 in some cases I have always found the explanation about `Read::read` returning 0 to indicate EOF but not indefinitely, so here's more info using Linux as example. I can also add example code if necessary
This commit is contained in:
commit
b1e0d5fda5
1 changed files with 7 additions and 1 deletions
|
@ -526,7 +526,12 @@ pub trait Read {
|
|||
///
|
||||
/// 1. This reader has reached its "end of file" and will likely no longer
|
||||
/// be able to produce bytes. Note that this does not mean that the
|
||||
/// reader will *always* no longer be able to produce bytes.
|
||||
/// reader will *always* no longer be able to produce bytes. As an example,
|
||||
/// on Linux, this method will call the `recv` syscall for a [`TcpStream`],
|
||||
/// where returning zero indicates the connection was shut down correctly. While
|
||||
/// for [`File`], it is possible to reach the end of file and get zero as result,
|
||||
/// but if more data is appended to the file, future calls to `read` will return
|
||||
/// more data.
|
||||
/// 2. The buffer specified was 0 bytes in length.
|
||||
///
|
||||
/// It is not an error if the returned value `n` is smaller than the buffer size,
|
||||
|
@ -568,6 +573,7 @@ pub trait Read {
|
|||
///
|
||||
/// [`Ok(n)`]: Ok
|
||||
/// [`File`]: crate::fs::File
|
||||
/// [`TcpStream`]: crate::net::TcpStream
|
||||
///
|
||||
/// ```no_run
|
||||
/// use std::io;
|
||||
|
|
Loading…
Reference in a new issue