Foreign Function Interface (FFI)
Syntax#
-
#[link(name = “snappy”)] // the foreign library to be linked to (optional)
extern { … } // list of function signatures in the foreign library
Calling libc function from nightly rust
The libc
crate is ’feature gated’ and can only be accessed on nightly Rust versions until it is considered stable.
#![feature(libc)]
extern crate libc;
use libc::pid_t;
#[link(name = "c")]
extern {
fn getpid() -> pid_t;
}
fn main() {
let x = unsafe { getpid() };
println!("Process PID is {}", x);
}