【发布时间】:2016-05-30 19:32:53
【问题描述】:
我很难在 Rust 中调用 libc::stat。我有这个:
extern crate libc;
use std::fs::File;
use std::os::unix::prelude::*;
use std::path::Path;
fn main() {
let p = Path::new("/");
let f = File::open(&p).unwrap();
let fd = f.as_raw_fd() as i8;
unsafe {
let mut stat: libc::stat = std::mem::zeroed();
if libc::stat(fd, &mut stat) >= 0 {
println!("{}", stat.st_blksize);
}
}
}
但现在我收到此错误:error: mismatched types: expected *const i8, found i8
我找不到任何关于第一个参数如何工作的文档。从类型(i8)来看,我认为一定是文件描述符。
背景:我正在阅读“UNIX 环境中的高级编程”,并想用 Rust 而不是 C 来做一些练习。
【问题讨论】: