]> git.proxmox.com Git - rustc.git/blame - vendor/rustix-0.37.6/src/fs/openat2.rs
New upstream version 1.74.1+dfsg1
[rustc.git] / vendor / rustix-0.37.6 / src / fs / openat2.rs
CommitLineData
fe692bf9
FG
1use crate::fd::OwnedFd;
2use crate::{backend, io, path};
3use backend::fd::AsFd;
4use backend::fs::types::{Mode, OFlags, ResolveFlags};
5
6/// `openat2(dirfd, path, OpenHow { oflags, mode, resolve }, sizeof(OpenHow))`
7///
8/// # References
9/// - [Linux]
10///
11/// [Linux]: https://man7.org/linux/man-pages/man2/openat2.2.html
12#[inline]
13pub fn openat2<Fd: AsFd, P: path::Arg>(
14 dirfd: Fd,
15 path: P,
16 oflags: OFlags,
17 mode: Mode,
18 resolve: ResolveFlags,
19) -> io::Result<OwnedFd> {
20 path.into_with_c_str(|path| {
21 backend::fs::syscalls::openat2(dirfd.as_fd(), path, oflags, mode, resolve)
22 })
23}