我正在尝试实现malloc类型的函数,但是我无法弄清楚要使用什么而不是在unistd.h中找到的sbrk函数用于C.有没有办法将FFI unistd.h转换为Rust程序?
答案 0 :(得分:3)
The Rust Programming Language预订了关于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"