Я изо всех сил пытаюсь позвонить libc::stat
в Rust. У меня есть это:Файл-аргумент в libc :: stat in Rust
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
), я думал, что это должен быть файловый дескриптор.
фона: Я читаю через «Advanced Programming в UNIX среде» и хотите сделать некоторые упражнения в Rust вместо C.