xref: /third_party/rust/crates/rustix/src/fs/openat2.rs
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/rust/crates/rustix/src/fs/
1b8a62b91Sopenharmony_ciuse crate::fd::OwnedFd;
2b8a62b91Sopenharmony_ciuse crate::{backend, io, path};
3b8a62b91Sopenharmony_ciuse backend::fd::AsFd;
4b8a62b91Sopenharmony_ciuse backend::fs::types::{Mode, OFlags, ResolveFlags};
5b8a62b91Sopenharmony_ci
6b8a62b91Sopenharmony_ci/// `openat2(dirfd, path, OpenHow { oflags, mode, resolve }, sizeof(OpenHow))`
7b8a62b91Sopenharmony_ci///
8b8a62b91Sopenharmony_ci/// # References
9b8a62b91Sopenharmony_ci///  - [Linux]
10b8a62b91Sopenharmony_ci///
11b8a62b91Sopenharmony_ci/// [Linux]: https://man7.org/linux/man-pages/man2/openat2.2.html
12b8a62b91Sopenharmony_ci#[inline]
13b8a62b91Sopenharmony_cipub fn openat2<Fd: AsFd, P: path::Arg>(
14b8a62b91Sopenharmony_ci    dirfd: Fd,
15b8a62b91Sopenharmony_ci    path: P,
16b8a62b91Sopenharmony_ci    oflags: OFlags,
17b8a62b91Sopenharmony_ci    mode: Mode,
18b8a62b91Sopenharmony_ci    resolve: ResolveFlags,
19b8a62b91Sopenharmony_ci) -> io::Result<OwnedFd> {
20b8a62b91Sopenharmony_ci    path.into_with_c_str(|path| {
21b8a62b91Sopenharmony_ci        backend::fs::syscalls::openat2(dirfd.as_fd(), path, oflags, mode, resolve)
22b8a62b91Sopenharmony_ci    })
23b8a62b91Sopenharmony_ci}
24

Indexes created Thu Nov 07 10:32:03 CST 2024