当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust FileExt.read_exact_at用法及代码示例


本文简要介绍rust语言中 std::os::unix::fs::FileExt.read_exact_at 的用法。

用法

fn read_exact_at(&self, buf: &mut [u8], offset: u64) -> Result<()>

从给定的偏移量读取填充buf 所需的确切字节数。

偏移量相对于文件的开头,因此独立于当前光标。

当前文件光标不受此函数影响。

类似于 io::Read::read_exact 但使用 read_at 而不是 read

错误

如果此函数遇到 io::ErrorKind::Interrupted 类型的错误,则忽略该错误并继续操作。

如果此函数在完全填充缓冲区之前遇到 “end of file”,它会返回 io::ErrorKind::UnexpectedEof 类型的错误。在这种情况下,buf 的内容未指定。

如果遇到任何其他读取错误,则此函数立即返回。在这种情况下,buf 的内容未指定。

如果此函数返回错误,则未指定它已读取多少字节,但它永远不会读取超过完全填满缓冲区所需的字节数。

例子

use std::io;
use std::fs::File;
use std::os::unix::prelude::FileExt;

fn main() -> io::Result<()> {
    let mut buf = [0u8; 8];
    let file = File::open("foo.txt")?;

    // We now read exactly 8 bytes from the offset 10.
    file.read_exact_at(&mut buf, 10)?;
    println!("read {} bytes: {:?}", buf.len(), buf);
    Ok(())
}

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::os::unix::fs::FileExt.read_exact_at。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。