本文简要介绍rust语言中 std::io::Read.read_exact
的用法。
用法
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
读取填充 buf
所需的确切字节数。
此函数根据需要读取尽可能多的字节以完全填充指定的缓冲区 buf
。
调用此函数时,不保证buf
的内容,实现不能依赖buf
内容的任何属性为真。建议实现只将数据写入buf
,而不是读取其内容。 read
上的文档对此主题有更详细的解释。
错误
如果此函数遇到 ErrorKind::Interrupted
类型的错误,则忽略该错误并继续操作。
如果此函数在完全填充缓冲区之前遇到 “end of file”,它会返回 ErrorKind::UnexpectedEof
类型的错误。在这种情况下,buf
的内容未指定。
如果遇到任何其他读取错误,则此函数立即返回。在这种情况下,buf
的内容未指定。
如果此函数返回错误,则未指定它已读取多少字节,但它永远不会读取超过完全填满缓冲区所需的字节数。
例子
File
实现 Read
:
use std::io;
use std::io::prelude::*;
use std::fs::File;
fn main() -> io::Result<()> {
let mut f = File::open("foo.txt")?;
let mut buffer = [0; 10];
// read exactly 10 bytes
f.read_exact(&mut buffer)?;
Ok(())
}
相关用法
- Rust Read.read_to_string用法及代码示例
- Rust Read.read_to_end用法及代码示例
- Rust Read.read用法及代码示例
- Rust Read.by_ref用法及代码示例
- Rust Read.chain用法及代码示例
- Rust Read.bytes用法及代码示例
- Rust Read.take用法及代码示例
- Rust Read用法及代码示例
- Rust Result.unwrap_or_else用法及代码示例
- Rust RefCell.try_borrow_unguarded用法及代码示例
- Rust Ref.map用法及代码示例
- Rust RefMut.leak用法及代码示例
- Rust Ref.filter_map用法及代码示例
- Rust RefCell.replace_with用法及代码示例
- Rust Receiver.recv用法及代码示例
- Rust Result.as_deref_mut用法及代码示例
- Rust Result.unwrap_or_default用法及代码示例
- Rust Result.as_mut用法及代码示例
- Rust Result.map_or用法及代码示例
- Rust Result.err用法及代码示例
- Rust Receiver.recv_timeout用法及代码示例
- Rust Receiver.try_recv用法及代码示例
- Rust Result用法及代码示例
- Rust Result.is_err用法及代码示例
- Rust Result.into_ok用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::io::Read.read_exact。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。