Trait zng::task::fs::unix::OpenOptionsExt
pub trait OpenOptionsExt: Sealed {
// Required methods
fn mode(&mut self, mode: u32) -> &mut Self;
fn custom_flags(&mut self, flags: i32) -> &mut Self;
}
Expand description
Unix-specific extensions to OpenOptions
.
Required Methods§
fn mode(&mut self, mode: u32) -> &mut Self
fn mode(&mut self, mode: u32) -> &mut Self
Sets the mode bits that a new file will be created with.
If a new file is created as part of an OpenOptions::open()
call then this
specified mode
will be used as the permission bits for the new file.
If no mode
is set, the default of 0o666
will be used.
The operating system masks out bits with the system’s umask
, to produce
the final permissions.
§Examples
use async_fs::{OpenOptions, unix::OpenOptionsExt};
let mut options = OpenOptions::new();
// Read/write permissions for owner and read permissions for others.
options.mode(0o644);
let file = options.open("foo.txt").await?;
fn custom_flags(&mut self, flags: i32) -> &mut Self
fn custom_flags(&mut self, flags: i32) -> &mut Self
Passes custom flags to the flags
argument of open
.
The bits that define the access mode are masked out with O_ACCMODE
, to
ensure they do not interfere with the access mode set by Rust’s options.
Custom flags can only set flags, not remove flags set by Rust’s options. This options overwrites any previously set custom flags.
§Examples
use async_fs::{OpenOptions, unix::OpenOptionsExt};
let mut options = OpenOptions::new();
options.write(true);
options.custom_flags(libc::O_NOFOLLOW);
let file = options.open("foo.txt").await?;
Object Safety§
This trait is not object safe.