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


Rust File.try_clone用法及代码示例


本文简要介绍rust语言中 std::fs::File.try_clone 的用法。

用法

pub fn try_clone(&self) -> Result<File>

创建一个新的 File 实例,该实例与现有的 File 实例共享相同的基础文件句柄。读取、写入和查找将同时影响两个 File 实例。

例子

为名为 foo.txt 的文件创建两个句柄:

use std::fs::File;

fn main() -> std::io::Result<()> {
    let mut file = File::open("foo.txt")?;
    let file_copy = file.try_clone()?;
    Ok(())
}

假设有一个名为 foo.txt 且内容为 abcdef\n 的文件,创建两个句柄,寻找其中一个,然后从另一个句柄中读取剩余字节:

use std::fs::File;
use std::io::SeekFrom;
use std::io::prelude::*;

fn main() -> std::io::Result<()> {
    let mut file = File::open("foo.txt")?;
    let mut file_copy = file.try_clone()?;

    file.seek(SeekFrom::Start(3))?;

    let mut contents = vec![];
    file_copy.read_to_end(&mut contents)?;
    assert_eq!(contents, b"def\n");
    Ok(())
}

相关用法


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