SpawnOptions

Struct SpawnOptions 

Source
pub struct SpawnOptions<'a> { /* private fields */ }

Implementations§

Source§

impl<'a> SpawnOptions<'a>

Source

pub fn new(filename: &'a CStr, argv: &'a CStrArray, envp: &'a CStrArray) -> Self

Source

pub unsafe fn pre_exec( &mut self, f: unsafe fn(data: usize) -> bool, data: usize, ) -> &mut Self

Sets a function to be called with the data argument before execve is called. This allows the caller to modify the environment for the new process.

§Safety

The function must not introduce undefined behavior.

The function must not break library guarantees. This could happen since it will be executed in another process which shares some things with the current process like the virtual memory, but not others like the file descriptor table, the threads, etc.

Source

pub fn clone_flags(&mut self, flags: u32) -> &mut Self

Sets additional clone flags to use when spawning the process. This can be used to spawn the process in a new namespace for example.

Source

pub fn spawn(&self) -> Result<pid_t>

Tries to spawn the new process and returns its PID on success.

Source

pub fn spawn_and_wait(&self) -> Result<i32>

Spawns a new process, waits for it to die and returns its status code.

Auto Trait Implementations§

§

impl<'a> Freeze for SpawnOptions<'a>

§

impl<'a> !RefUnwindSafe for SpawnOptions<'a>

§

impl<'a> !Send for SpawnOptions<'a>

§

impl<'a> !Sync for SpawnOptions<'a>

§

impl<'a> Unpin for SpawnOptions<'a>

§

impl<'a> !UnwindSafe for SpawnOptions<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.