在Rust中,可以使用libc
库来包装现有的C函数或从Rust调用C函数。下面是一种常见的方法:
libc
依赖项:[dependencies]
libc = "0.2"
extern
关键字声明C函数的原型,并使用#[link(name = "库名")]
指定链接的C库。例如,假设有一个C函数add
,它接受两个整数并返回它们的和:extern "C" {
fn add(a: i32, b: i32) -> i32;
}
fn main() {
let result = unsafe { add(3, 4) };
println!("Result: {}", result);
}
unsafe
关键字,因为C函数调用可能会涉及到不安全的操作。这样,你就可以在Rust中包装现有的C函数或从Rust调用C函数了。
关于Rust包装C函数的更多细节和注意事项,可以参考官方文档:Rust FFI Omnibus。
请注意,以上答案仅供参考,具体的包装和调用方式可能因实际情况而异。
领取专属 10元无门槛券
手把手带您无忧上云