有没有办法在 Rust 代码中使用 unistd.h 中的函数?

Is there a way to use functions from unistd.h in Rust code?

我正在尝试实现 malloc 类型的函数,但我无法弄清楚要使用什么来代替 unistd.h 中为 C 找到的 sbrk 函数。是否有任何方法可以实现 FFI unistd.h 进入 Rust 程序?

The Rust Programming Language book as some good info on FFI. If you use libc, and cargo 你可以使用类似下面的东西。

extern crate libc;

use libc;

extern {
    fn sbrk(x: usize) -> *mut libc::c_void;
}

fn call_sbrk(x: usize) -> *mut libc::c_void {
    unsafe {
        sbrk(x)
    }
}

fn main() {
    let x = call_sbrk(42);
    println!("{:p}", x);
}

在您的 Cargo.toml

中添加类似以下内容
[dependencies]
libc = "^0.2.7"