vfork

Crates.iovfork
lib.rsvfork
version0.1.0
sourcesrc
created_at2023-09-24 09:09:22.552312
updated_at2023-09-24 09:09:22.552312
descriptionvfork-rs is used in embedded low memory to run an external program.
homepage
repositoryhttps://github.com/cppcoffee/vfork-rs
max_upload_size
id981805
size8,221
Xiaobo Liu (cppcoffee)

documentation

README

vfork-rs

vfork-rs is used in embedded low memory to run an external program and read the stdout output.

Just like the name, the vfork-rs uses the linux vfork syscall. the vfork syscall is used to create new processes without copying the page tables of the parent process.

Notice

Used in linux only.

Usage

use vfork::Command;

fn main() {
    let s = "hello, world!";
    let mut cmd = Command::new("/bin/echo")
        .arg(s)
        .spawn()
        .expect("failed to execute process");

    let status_code = cmd.wait().expect("failed to wait process");
    assert_eq!(0, status_code.code());

    let output = cmd.output().expect("failed to get output");
    assert_eq!(String::from_utf8_lossy(&output), s);
}

Reference

https://man7.org/linux/man-pages/man2/vfork.2.html

Commit count: 11

cargo fmt