Rust的标准库是否支持直接IO文件访问?

时间:2018-06-15 17:05:13

标签: io rust buffer

有没有办法用Rust的标准库指定O_DIRECT,还是需要使用libc

1 个答案:

答案 0 :(得分:2)

您可以使用 Unix特定扩展程序特征os::unix::fs::OpenOptionsExt

use std::{fs::OpenOptions, os::unix::fs::OpenOptionsExt};

const O_DIRECT: i32 = 0o0040000; // Double check value

fn main() {
    OpenOptions::new()
        .read(true)
        .custom_flags(O_DIRECT)
        .open("/etc/passwd")
        .expect("Can't open");
}

然而,O_DIRECT的值是特定于平台的。我可能最终会使用libc来提供价值。