我正在尝试实现一个类似于malloc的函数,但是我不知道在C中该使用什么替代unistd.h中的sbrk函数。是否有办法将unistd.h FFI到Rust程序中?
《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"
pkg =“*”
(http://doc.crates.io/faq.html#can-libraries-use--as-a-version-for-their-dependencies)。 - набиячлэвэли#[link(name = "")]
的东西,但是不知道该填什么名字。 - Harvey AdcockPROT_WRITE
显示为_PROT_WRITE
。你有什么想法吗? - Harvey Adcock