• Home
  • Raw
  • Download

Lines Matching +full:bare +full:- +full:fs

1 //! POSIX-style filesystem functions which operate on bare paths.
5 use crate::fs::Access;
16 use crate::fs::StatFs;
18 use crate::fs::StatVfs;
19 use crate::fs::{Mode, OFlags, Stat};
39 /// - [POSIX]
40 /// - [Linux]
43 /// [Linux]: https://man7.org/linux/man-pages/man2/open.2.html
45 pub fn open<P: path::Arg>(path: P, flags: OFlags, mode: Mode) -> io::Result<OwnedFd> { in open()
46 path.into_with_c_str(|path| backend::fs::syscalls::open(path, flags, mode)) in open()
52 /// - [POSIX]
53 /// - [Linux]
56 /// [Linux]: https://man7.org/linux/man-pages/man2/chmod.2.html
59 pub fn chmod<P: path::Arg>(path: P, mode: Mode) -> io::Result<()> { in chmod()
60 path.into_with_c_str(|path| backend::fs::syscalls::chmod(path, mode)) in chmod()
69 /// - [POSIX]
70 /// - [Linux]
73 /// [Linux]: https://man7.org/linux/man-pages/man2/stat.2.html
74 /// [`Mode::from_raw_mode`]: crate::fs::Mode::from_raw_mode
75 /// [`FileType::from_raw_mode`]: crate::fs::FileType::from_raw_mode
77 pub fn stat<P: path::Arg>(path: P) -> io::Result<Stat> { in stat()
78 path.into_with_c_str(backend::fs::syscalls::stat) in stat()
88 /// - [POSIX]
89 /// - [Linux]
92 /// [Linux]: https://man7.org/linux/man-pages/man2/lstat.2.html
93 /// [`Mode::from_raw_mode`]: crate::fs::Mode::from_raw_mode
94 /// [`FileType::from_raw_mode`]: crate::fs::FileType::from_raw_mode
96 pub fn lstat<P: path::Arg>(path: P) -> io::Result<Stat> { in lstat()
97 path.into_with_c_str(backend::fs::syscalls::lstat) in lstat()
102 /// If `reuse` is non-empty, reuse its buffer to store the result if possible.
105 /// - [POSIX]
106 /// - [Linux]
109 /// [Linux]: https://man7.org/linux/man-pages/man2/readlink.2.html
112 pub fn readlink<P: path::Arg, B: Into<Vec<u8>>>(path: P, reuse: B) -> io::Result<CString> { in readlink()
117 fn _readlink(path: &CStr, mut buffer: Vec<u8>) -> io::Result<CString> { in _readlink()
125 let nread = backend::fs::syscalls::readlink(path, &mut buffer)?; in _readlink()
142 /// - [POSIX]
143 /// - [Linux]
146 /// [Linux]: https://man7.org/linux/man-pages/man2/rename.2.html
148 pub fn rename<P: path::Arg, Q: path::Arg>(old_path: P, new_path: Q) -> io::Result<()> { in rename()
150 new_path.into_with_c_str(|new_path| backend::fs::syscalls::rename(old_path, new_path)) in rename()
157 /// - [POSIX]
158 /// - [Linux]
161 /// [Linux]: https://man7.org/linux/man-pages/man2/unlink.2.html
163 pub fn unlink<P: path::Arg>(path: P) -> io::Result<()> { in unlink()
164 path.into_with_c_str(backend::fs::syscalls::unlink) in unlink()
170 /// - [POSIX]
171 /// - [Linux]
174 /// [Linux]: https://man7.org/linux/man-pages/man2/rmdir.2.html
176 pub fn rmdir<P: path::Arg>(path: P) -> io::Result<()> { in rmdir()
177 path.into_with_c_str(backend::fs::syscalls::rmdir) in rmdir()
182 /// POSIX leaves it implementation-defined whether `link` follows a symlink in
189 /// - [POSIX]
190 /// - [Linux]
193 /// [Linux]: https://man7.org/linux/man-pages/man2/link.2.html
194 /// [`linkat`]: crate::fs::linkat
195 /// [`AtFlags`]: crate::fs::AtFlags
196 /// [`AtFlags::SYMLINK_FOLLOW`]: crate::fs::AtFlags::SYMLINK_FOLLOW
198 pub fn link<P: path::Arg, Q: path::Arg>(old_path: P, new_path: Q) -> io::Result<()> { in link()
200 new_path.into_with_c_str(|new_path| backend::fs::syscalls::link(old_path, new_path)) in link()
207 /// - [POSIX]
208 /// - [Linux]
211 /// [Linux]: https://man7.org/linux/man-pages/man2/symlink.2.html
213 pub fn symlink<P: path::Arg, Q: path::Arg>(old_path: P, new_path: Q) -> io::Result<()> { in symlink()
215 new_path.into_with_c_str(|new_path| backend::fs::syscalls::symlink(old_path, new_path)) in symlink()
222 /// - [POSIX]
223 /// - [Linux]
226 /// [Linux]: https://man7.org/linux/man-pages/man2/mkdir.2.html
228 pub fn mkdir<P: path::Arg>(path: P, mode: Mode) -> io::Result<()> { in mkdir()
229 path.into_with_c_str(|path| backend::fs::syscalls::mkdir(path, mode)) in mkdir()
235 /// - [POSIX]
236 /// - [Linux]
239 /// [Linux]: https://man7.org/linux/man-pages/man2/access.2.html
242 pub fn access<P: path::Arg>(path: P, access: Access) -> io::Result<()> { in access()
243 path.into_with_c_str(|path| backend::fs::syscalls::access(path, access)) in access()
252 /// - [Linux]
254 /// [Linux]: https://man7.org/linux/man-pages/man2/statfs.2.html
266 pub fn statfs<P: path::Arg>(path: P) -> io::Result<StatFs> { in statfs()
267 path.into_with_c_str(backend::fs::syscalls::statfs) in statfs()
278 /// - [POSIX]
279 /// - [Linux]
282 /// [Linux]: https://man7.org/linux/man-pages/man2/statvfs.2.html
285 pub fn statvfs<P: path::Arg>(path: P) -> io::Result<StatVfs> { in statvfs()
286 path.into_with_c_str(backend::fs::syscalls::statvfs) in statvfs()
292 /// - [POSIX]
293 /// - [Linux]
296 /// [Linux]: https://man7.org/linux/man-pages/man2/chown.2.html
299 pub fn chown<P: path::Arg>(path: P, owner: Option<Uid>, group: Option<Gid>) -> io::Result<()> { in chown()
300 path.into_with_c_str(|path| backend::fs::syscalls::chown(path, owner, group)) in chown()