本文簡要介紹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 FileExt.read_at用法及代碼示例
- Rust FileExt.write_at用法及代碼示例
- Rust FileExt.seek_read用法及代碼示例
- Rust FileExt.seek_write用法及代碼示例
- Rust FileExt.write_all_at用法及代碼示例
- Rust File用法及代碼示例
- Rust FileTypeExt.is_char_device用法及代碼示例
- Rust File.open用法及代碼示例
- Rust File.sync_data用法及代碼示例
- Rust FileType.is_symlink用法及代碼示例
- Rust File.options用法及代碼示例
- Rust File.create用法及代碼示例
- Rust File.sync_all用法及代碼示例
- Rust FileType.is_file用法及代碼示例
- Rust File.set_len用法及代碼示例
- Rust FileType.is_dir用法及代碼示例
- Rust File.metadata用法及代碼示例
- Rust FileTypeExt.is_fifo用法及代碼示例
- Rust File.set_permissions用法及代碼示例
- Rust File.try_clone用法及代碼示例
- Rust FileTypeExt.is_socket用法及代碼示例
- Rust FileTypeExt.is_block_device用法及代碼示例
- Rust Formatter.precision用法及代碼示例
- Rust Formatter.debug_list用法及代碼示例
- Rust Formatter.sign_minus用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::os::unix::fs::FileExt.read_exact_at。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。