summary refs log tree commit diff
path: root/src/libstd/sys/redox/fs.rs
diff options
context:
space:
mode:
authorJeremy Soller <jackpot51@gmail.com>2016-11-15 16:12:30 -0700
committerJeremy Soller <jackpot51@gmail.com>2016-11-15 16:12:30 -0700
commit2e5c821619c7b62ec46c8a4f90ead4e59fb6c36e (patch)
tree66d9549bae99eba6fe1277167c97a53937f4fcfd /src/libstd/sys/redox/fs.rs
parent73f24d47dee367563019b18ac5089b91eded2753 (diff)
downloadrust-2e5c821619c7b62ec46c8a4f90ead4e59fb6c36e.tar.gz
rust-2e5c821619c7b62ec46c8a4f90ead4e59fb6c36e.zip
Add set_perm
Diffstat (limited to 'src/libstd/sys/redox/fs.rs')
-rw-r--r--src/libstd/sys/redox/fs.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/libstd/sys/redox/fs.rs b/src/libstd/sys/redox/fs.rs
index 1a96ac2f2ea..df2926565f7 100644
--- a/src/libstd/sys/redox/fs.rs
+++ b/src/libstd/sys/redox/fs.rs
@@ -386,9 +386,12 @@ pub fn rename(_old: &Path, _new: &Path) -> io::Result<()> {
     unimplemented!();
 }
 
-pub fn set_perm(_p: &Path, _perm: FilePermissions) -> io::Result<()> {
-    ::sys_common::util::dumb_print(format_args!("Set perm\n"));
-    unimplemented!();
+pub fn set_perm(p: &Path, perm: FilePermissions) -> io::Result<()> {
+    let mut options = OpenOptions::new();
+    options.read(true);
+    let file = File::open(p, &options)?;
+    cvt(libc::fcntl(file.0.raw(), libc::F_SETMODE, perm.mode as usize))?;
+    Ok(())
 }
 
 pub fn rmdir(p: &Path) -> io::Result<()> {