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

时间:2016-02-23 16:11:54

标签: rust ffi sbrk

我正在尝试实现malloc类型的函数,但是我无法弄清楚要使用什么而不是在unistd.h中找到的sbrk函数用于C.有没有办法将FFI unistd.h转换为Rust程序?

1 个答案:

答案 0 :(得分:3)

The Rust Programming Language预订了关于FFI的一些好消息。如果您使用libccargo,则可以使用以下内容。

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"