pub trait OpenOptionsExt {
// Required methods
fn mode(&mut self, mode: u32) -> &mut Self;
fn custom_flags(&mut self, flags: i32) -> &mut Self;
}
Available on Unix only.
Expand description
特定于 Unix 的 fs::OpenOptions
扩展。
Required Methods§
sourcefn mode(&mut self, mode: u32) -> &mut Self
fn mode(&mut self, mode: u32) -> &mut Self
设置将用于创建新文件的模式位。
如果在 OpenOptions::open
调用中创建了一个新文件,则此指定的 mode
将用作新文件的权限位。
如果未设置 mode
,则将使用默认值 0o666
。
操作系统用系统的 umask
屏蔽掉某些位,以产生最终权限。
Examples
use std::fs::OpenOptions;
use std::os::unix::fs::OpenOptionsExt;
let mut options = OpenOptions::new();
options.mode(0o644); // 为所有者提供读写权限,为其他人提供读取权限。
let file = options.open("foo.txt");
Run1.10.0 · sourcefn custom_flags(&mut self, flags: i32) -> &mut Self
fn custom_flags(&mut self, flags: i32) -> &mut Self
将自定义标志传递给 open
的 flags
参数。
定义访问模式的位被 O_ACCMODE
屏蔽,以确保它们不干扰 Rusts 选项设置的访问模式。
自定义标志只能设置标志,而不能删除 Rusts 选项设置的标志。 此选项将覆盖以前设置的所有自定义标志。
Examples
use libc;
use std::fs::OpenOptions;
use std::os::unix::fs::OpenOptionsExt;
let mut options = OpenOptions::new();
options.write(true);
if cfg!(unix) {
options.custom_flags(libc::O_NOFOLLOW);
}
let file = options.open("foo.txt");
Run