getid functions

This commit is contained in:
Paul Sajna
2018-03-04 22:11:59 -08:00
parent 2636b6f5b1
commit 3a07bc27c2
6 changed files with 93 additions and 7 deletions
+42
View File
@@ -80,6 +80,48 @@ pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char {
}
}
pub fn getegid() -> gid_t {
unsafe {
syscall!(GETEGID)
}
}
pub fn geteuid() -> uid_t {
unsafe {
syscall!(GETEUID)
}
}
pub fn getgid() -> gid_t {
unsafe {
syscall!(GETGID)
}
}
pub fn getpgid(pid: pid_t) -> pid_t {
unsafe {
syscall!(GETPGID, pid)
}
}
pub fn getpid() -> pid_t {
unsafe {
syscall!(GETPID)
}
}
pub fn getppid() -> pid_t {
unsafe {
syscall!(GETPPID)
}
}
pub fn getuid() -> uid_t {
unsafe {
syscall!(GETUID)
}
}
#[cfg(target_arch = "x86_64")]
pub fn open(path: *const c_char, oflag: c_int, mode: mode_t) -> c_int {
unsafe {
+28
View File
@@ -64,6 +64,34 @@ pub fn getcwd(buf: *mut c_char, size: size_t) -> {
}
}
pub fn getegid() -> gid_t {
syscall::getegid()? as gid_t
}
pub fn geteuid() -> uid_t {
syscall::geteuid()? as uid_t
}
pub fn getgid() -> gid_t {
syscall::getgid()? as gid_t
}
pub fn getpgid(pid: pid_t) -> pid_t {
syscall::getpgid(pid as usize)? as pid_t
}
pub fn getpid() -> pid_t {
syscall::getpid()? as pid_t
}
pub fn getppid() -> pid_t {
syscall::getppid()? as pid_t
}
pub fn getuid() -> uid_t {
syscall::getuid()? as pid_t
}
pub fn open(path: *const c_char, oflag: c_int, mode: mode_t) -> c_int {
let path = unsafe { c_str(path) };
syscall::open(path, (oflag as usize) | (mode as usize)).unwrap() as c_int