1
Fork 0

Add current_pid function

Fixes #44971
This commit is contained in:
Thayne McCombs 2017-10-05 23:49:36 -06:00
parent a4af9309d0
commit 6ff6b93560
4 changed files with 30 additions and 0 deletions

View file

@ -1167,6 +1167,24 @@ pub fn abort() -> ! {
unsafe { ::sys::abort_internal() };
}
/// Returns the OS-assigned process identifier associated with this process.
///
/// # Examples
///
/// Basic usage:
///
/// ```no_run
/// use std::process:current_pid;
///
/// println!("My pid is {}", current_pid());
/// ```
///
///
#[unstable(feature = "getpid", issue = "44971", reason = "recently added")]
pub fn current_pid() -> u32 {
::sys::os::getpid()
}
#[cfg(all(test, not(target_os = "emscripten")))]
mod tests {
use io::prelude::*;

View file

@ -209,3 +209,7 @@ pub fn exit(code: i32) -> ! {
let _ = syscall::exit(code as usize);
unreachable!();
}
pub fn getpid() -> u32 {
syscall::getpid().unwrap() as u32
}

View file

@ -513,3 +513,7 @@ pub fn home_dir() -> Option<PathBuf> {
pub fn exit(code: i32) -> ! {
unsafe { libc::exit(code as c_int) }
}
pub fn getpid() -> u32 {
unsafe { libc::getpid() as u32 }
}

View file

@ -318,6 +318,10 @@ pub fn exit(code: i32) -> ! {
unsafe { c::ExitProcess(code as c::UINT) }
}
pub fn getpid() -> u32 {
unsafe { c::GetCurrentProcessId() as u32 }
}
#[cfg(test)]
mod tests {
use io::Error;