Skip to main content

execve

Function execve 

Source
pub unsafe fn execve<P: AsRef<Path>>(
    filename: P,
    argv: &[P],
    env: &[P],
) -> Result<(), Errno>
Expand description

Execute a new program.

ยงExamples

let args = ["ls", "-l", "-a"];
let env = ["DISPLAY=:0"];
let ret = unsafe { nc::execve("/bin/ls", &args, &env) };
assert!(ret.is_ok());
Examples found in repository?
examples/exec.rs (line 9)
5fn call_ls() {
6    println!("[ls] pid: {}", unsafe { nc::getpid() });
7    let args = ["ls", "-l", "-a"];
8    let env = ["DISPLAY=wayland"];
9    let ret = unsafe { nc::execve("/bin/ls", &args, &env) };
10    assert!(ret.is_ok());
11}
More examples
Hide additional examples
examples/fork.rs (line 14)
5fn main() {
6    let pid = unsafe { nc::fork() };
7    match pid {
8        Err(errno) => eprintln!("Failed to call fork(), err: {}", nc::strerror(errno)),
9        Ok(0) => {
10            // Child process
11            println!("[child] pid: {}", unsafe { nc::getpid() });
12            let args = ["ls", "-l", "-a"];
13            let env = ["DISPLAY=wayland"];
14            let ret = unsafe { nc::execve("/bin/ls", &args, &env) };
15            assert!(ret.is_ok());
16        }
17        Ok(child_pid) => {
18            // Parent process
19            println!("[main] child pid is: {child_pid}");
20        }
21    }
22}