4

malloc 型の関数を実装しようとしていますが、C の unistd.h にある sbrk 関数の代わりに何を使用すればよいかわかりません。unistd.h を Rust プログラムに FFI する方法はありますか?

4

1 に答える 1

3

Rust Programming Language book は、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"
于 2016-02-23T16:57:02.927 に答える