implement setid functions and unlink
This commit is contained in:
@@ -139,6 +139,22 @@ pub fn rmdir(path: *const c_char) -> c_int {
|
||||
e(unsafe { syscall!(UNLINKAT, AT_FDCWD, path, AT_REMOVEDIR) }) as c_int
|
||||
}
|
||||
|
||||
pub fn setpgid(pid: pid_t, pgid: pid_t) -> c_int {
|
||||
e(unsafe { syscall!(SETPGID, pid, pgid) }) as c_int
|
||||
}
|
||||
|
||||
pub fn setregid(rgid: gid_t, egid: gid_t) -> c_int {
|
||||
e(unsafe { syscall!(SETREGID, rgid, egid) }) as c_int
|
||||
}
|
||||
|
||||
pub fn setreuid(ruid: uid_t, euid: uid_t) -> c_int {
|
||||
e(unsafe { syscall!(SETREUID, ruid, euid) }) as c_int
|
||||
}
|
||||
|
||||
pub fn unlink(path: *const c_char) -> c_int {
|
||||
e(unsafe { syscall!(UNLINKAT, AT_FDCWD, path, 0) }) as c_int
|
||||
}
|
||||
|
||||
pub fn write(fildes: c_int, buf: &[u8]) -> ssize_t {
|
||||
e(unsafe { syscall!(WRITE, fildes, buf.as_ptr(), buf.len()) }) as ssize_t
|
||||
}
|
||||
|
||||
@@ -157,6 +157,23 @@ pub fn rmdir(path: *const c_char) -> c_int {
|
||||
e(syscall::rmdir(path)) as c_int
|
||||
}
|
||||
|
||||
pub fn setpgid(pid: pid_t, pgid: pid_t) -> c_int {
|
||||
e(syscall::setpgid(pid as usize, pgid as usize)) as c_int
|
||||
}
|
||||
|
||||
pub fn setregid(rgid: gid_t, egid: gid_t) -> c_int {
|
||||
e(syscall::setregid(rgid as usize, egid as usize)) as c_int
|
||||
}
|
||||
|
||||
pub fn setreuid(ruid: uid_t, euid: uid_t) -> c_int {
|
||||
e(syscall::setreuid(ruid as usize, euid as usize)) as c_int
|
||||
}
|
||||
|
||||
pub fn unlink(path: *const c_char) -> c_int {
|
||||
let path = unsafe { c_str(path) };
|
||||
e(syscall::unlink(path)) as c_int
|
||||
}
|
||||
|
||||
pub fn write(fd: c_int, buf: &[u8]) -> ssize_t {
|
||||
e(syscall::write(fd as usize, buf)) as ssize_t
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user