nix 0.6.0

Rust friendly bindings to *nix APIs
Documentation
src/fcntl.rs:101:    let fd = try!(path.with_nix_path(|cstr| {
src/fcntl.rs:102-        unsafe { ffi::open(cstr.as_ptr(), oflag.bits(), mode.bits() as mode_t) }
src/fcntl.rs:103-    }));

src/sys/mman.rs:241:    let ret = try!(name.with_nix_path(|cstr| {
src/sys/mman.rs:242-        unsafe {
src/sys/mman.rs:243-            ffi::shm_open(cstr.as_ptr(), flag.bits(), mode.bits() as mode_t)
src/sys/mman.rs:244-        }
src/sys/mman.rs:245-    }));

src/sys/mman.rs:255:    let ret = try!(name.with_nix_path(|cstr| {
src/sys/mman.rs:256-        unsafe { ffi::shm_unlink(cstr.as_ptr()) }
src/sys/mman.rs:257-    }));

src/sys/quota.rs:89:				Some(dev) => dev.with_nix_path(|path| ffi::quotactl(cmd.as_int(), path.as_ptr(), id, addr)),

>>> DIFFERENT <<<
src/sys/quota.rs:98:	try!(quota_file.with_nix_path(|path| {
src/sys/quota.rs:99-		let mut path_copy = path.to_bytes_with_nul().to_owned();
src/sys/quota.rs:100-		let p: *mut i8 = path_copy.as_mut_ptr() as *mut i8;
src/sys/quota.rs:101-		quotactl(quota::QuotaCmd(quota::Q_QUOTAON, which), Some(special), format as c_int, p)
src/sys/quota.rs:102-	}))

>>> DIFFERENT <<<
src/sys/socket/addr.rs:342:        try!(path.with_nix_path(|cstr| {
src/sys/socket/addr.rs:343-            unsafe {
src/sys/socket/addr.rs:344-                let mut ret = libc::sockaddr_un {
src/sys/socket/addr.rs:345-                    sun_family: AddressFamily::Unix as sa_family_t,
src/sys/socket/addr.rs:346-                    .. mem::zeroed()
src/sys/socket/addr.rs:347-                };
src/sys/socket/addr.rs:348-
src/sys/socket/addr.rs:349-                let bytes = cstr.to_bytes_with_nul();  // HERE
src/sys/socket/addr.rs:350-
src/sys/socket/addr.rs:351-                if bytes.len() > ret.sun_path.len() {
src/sys/socket/addr.rs:352-                    return Err(Error::Sys(Errno::ENAMETOOLONG));

src/sys/stat.rs:54:    let res = try!(path.with_nix_path(|cstr| {
src/sys/stat.rs:55-        unsafe {
src/sys/stat.rs:56-            ffi::mknod(cstr.as_ptr(), kind.bits | perm.bits() as mode_t, dev)
src/sys/stat.rs:57-        }
src/sys/stat.rs:58-    }));

src/sys/stat.rs:77:    let res = try!(path.with_nix_path(|cstr| {
src/sys/stat.rs:78-        unsafe {
src/sys/stat.rs:79-            ffi::stat(cstr.as_ptr(), &mut dst as *mut FileStat)
src/sys/stat.rs:80-        }
src/sys/stat.rs:81-    }));

src/sys/stat.rs:92:    let res = try!(path.with_nix_path(|cstr| {
src/sys/stat.rs:93-        unsafe {
src/sys/stat.rs:94-            ffi::lstat(cstr.as_ptr(), &mut dst as *mut FileStat)
src/sys/stat.rs:95-        }
src/sys/stat.rs:96-    }));

src/sys/statfs.rs:105:			path.with_nix_path(|path| ffi::statfs(path.as_ptr(), stat))

src/sys/statvfs.rs:148:			path.with_nix_path(|path| ffi::statvfs(path.as_ptr(), stat))

src/unistd.rs:170:    let res = try!(path.with_nix_path(|cstr| {
src/unistd.rs:171-        unsafe { ffi::chdir(cstr.as_ptr()) }
src/unistd.rs:172-    }));

src/unistd.rs:349:    let res = try!(path.with_nix_path(|cstr| {
src/unistd.rs:350-    unsafe {
src/unistd.rs:351-        ffi::unlink(cstr.as_ptr())
src/unistd.rs:352-    }
src/unistd.rs:353-    }));

src/unistd.rs:359:    let res = try!(path.with_nix_path(|cstr| {
src/unistd.rs:360-        unsafe { ffi::chroot(cstr.as_ptr()) }
src/unistd.rs:361-    }));

src/unistd.rs:429:        let res = try!(try!(new_root.with_nix_path(|new_root| {
src/unistd.rs:430:            put_old.with_nix_path(|put_old| {
src/unistd.rs:431-                unsafe {
src/unistd.rs:432-                    syscall(SYSPIVOTROOT, new_root.as_ptr(), put_old.as_ptr())
src/unistd.rs:433-                }
src/unistd.rs:434-            })
src/unistd.rs:435-        })));

src/mount.rs:82:        source.with_nix_path(|source| {
src/mount.rs:83:            target.with_nix_path(|target| {
src/mount.rs:84:                fstype.with_nix_path(|fstype| {
src/mount.rs:85:                    data.with_nix_path(|data| {
src/mount.rs:86-                        unsafe {
src/mount.rs:87-                            ffi::mount(source.as_ptr(),
src/mount.rs:88-                                       target.as_ptr(),
src/mount.rs:89-                                       fstype.as_ptr(),
src/mount.rs:90-                                       flags.bits,
src/mount.rs:91-                                       data.as_ptr() as *const libc::c_void)
src/mount.rs:92-                        }
src/mount.rs:93-                    })
src/mount.rs:94-                })
src/mount.rs:95-            })
src/mount.rs:102:    let res = try!(target.with_nix_path(|cstr| {
src/mount.rs:103-        unsafe { ffi::umount(cstr.as_ptr()) }
src/mount.rs:104-    }));
src/mount.rs:105-
src/mount.rs:106-    from_ffi(res)
src/mount.rs:107-}
src/mount.rs:108-
src/mount.rs:109-pub fn umount2<P: ?Sized + NixPath>(target: &P, flags: MntFlags) -> Result<()> {
src/mount.rs:110:    let res = try!(target.with_nix_path(|cstr| {
src/mount.rs:111-        unsafe { ffi::umount2(cstr.as_ptr(), flags.bits) }
src/mount.rs:112-    }));
src/mount.rs:113-
src/mount.rs:114-    from_ffi(res)
src/mount.rs:115-}
src/mount.rs:116-