9 use rustix
::fs
::{cwd, mknodat, openat, statat, unlinkat, AtFlags, FileType, Mode, OFlags}
;
11 let tmp
= tempfile
::tempdir().unwrap();
12 let dir
= openat(cwd(), tmp
.path(), OFlags
::RDONLY
, Mode
::empty()).unwrap();
14 // Create a regular file. Not supported on FreeBSD or OpenBSD.
15 #[cfg(not(any(target_os = "freebsd", target_os = "openbsd")))]
17 mknodat(&dir
, "foo", FileType
::RegularFile
, Mode
::empty(), 0).unwrap();
18 let stat
= statat(&dir
, "foo", AtFlags
::empty()).unwrap();
19 assert_eq
!(FileType
::from_raw_mode(stat
.st_mode
), FileType
::RegularFile
);
20 unlinkat(&dir
, "foo", AtFlags
::empty()).unwrap();
23 mknodat(&dir
, "foo", FileType
::Fifo
, Mode
::empty(), 0).unwrap();
24 let stat
= statat(&dir
, "foo", AtFlags
::empty()).unwrap();
25 assert_eq
!(FileType
::from_raw_mode(stat
.st_mode
), FileType
::Fifo
);
26 unlinkat(&dir
, "foo", AtFlags
::empty()).unwrap();