4

我正在尝试实现 malloc 类型的函数,但我不知道要使用什么来代替 unistd.h 中用于 C 的 sbrk 函数。有没有办法将 unistd.h 转换为 Rust 程序?

4

1 回答 1

3

Rust 编程语言书作为有关 FFI 的一些很好的信息。如果你使用libc, 和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"
于 2016-02-23T16:57:02.927 回答