Add pwrite

This commit is contained in:
Jeremy Soller
2018-11-25 14:38:12 -07:00
parent 8a042a220d
commit d818a8d10e
+18 -2
View File
@@ -417,14 +417,30 @@ pub extern "C" fn pthread_atfork(
unimplemented!();
}
// #[no_mangle]
#[no_mangle]
pub extern "C" fn pwrite(
fildes: c_int,
buf: *const c_void,
nbyte: size_t,
offset: off_t,
) -> ssize_t {
unimplemented!();
//TODO: better pwrite using system calls
let previous = lseek(fildes, offset, SEEK_SET);
if previous == -1 {
return -1;
}
let res = write(fildes, buf, nbyte);
if res < 0 {
return res;
}
if lseek(fildes, previous, SEEK_SET) == -1 {
return -1;
}
res
}
#[no_mangle]