about summary refs log tree commit diff
path: root/library/std/src/sys
diff options
context:
space:
mode:
authorFederico Ponzi <isaacisback92@gmail.com>2020-08-30 16:21:41 +0200
committerFederico Ponzi <isaacisback92@gmail.com>2020-08-30 16:27:08 +0200
commit27c90b881df93b53fd3f24dcbfed116379c2fc69 (patch)
tree3accf5523719f31796171d4b5ce908e4157cfb3e /library/std/src/sys
parentfe8ab8a530fc2369e2748421a319444383363340 (diff)
downloadrust-27c90b881df93b53fd3f24dcbfed116379c2fc69.tar.gz
rust-27c90b881df93b53fd3f24dcbfed116379c2fc69.zip
initial implementation of OpenOptions to c_int
Diffstat (limited to 'library/std/src/sys')
-rw-r--r--library/std/src/sys/unix/fs.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/library/std/src/sys/unix/fs.rs b/library/std/src/sys/unix/fs.rs
index acb18e6d064..59dfd9f9dc4 100644
--- a/library/std/src/sys/unix/fs.rs
+++ b/library/std/src/sys/unix/fs.rs
@@ -692,6 +692,7 @@ impl OpenOptions {
     }
 }
 
+
 impl File {
     pub fn open(path: &Path, opts: &OpenOptions) -> io::Result<File> {
         let path = cstr(path)?;
@@ -962,6 +963,12 @@ pub fn rename(old: &Path, new: &Path) -> io::Result<()> {
     Ok(())
 }
 
+pub fn get_openopetions_as_cint(from: OpenOptions) -> io::Result<libc::c_int> {
+    let access_mode = from.get_access_mode()?;
+    let creation_mode = from.get_creation_mode()?;
+    Ok(creation_mode | access_mode)
+}
+
 pub fn set_perm(p: &Path, perm: FilePermissions) -> io::Result<()> {
     let p = cstr(p)?;
     cvt_r(|| unsafe { libc::chmod(p.as_ptr(), perm.mode) })?;