Mapeo incorrecto de C struct a Rust

Con fines educativos trato de acceder a laFILE estructura en óxido:

unsafe {
    let passwd = libc::fopen("/etc/passwd".to_ptr(), &('r' as libc::c_char));
    let fp = &mut *(passwd as *mut MY_FILE);
    println!("flags={}, file={}", fp._flags, fp._file);
}

elMY_FILE struct que obtuve ejecutando bindgen en stdio.h (estoy en OS X):

bindgen /usr/include/stdio.h

De alguna manera_flags es siempre8 para archivos abiertos en modo de escritura (4 en modo de lectura), por lo que este indicador parece apagado (probé con unC código para verificar que de hecho no es 4 u 8). Sin embargo, el puntero del archivo parece ser correcto. Que podria causar esto? ¿Extraigo el enlace del archivo de encabezado incorrecto? ¿Hay algo que deba agregar al#[repr(C,)] ¿atributo?

aquí es el código completo que incluye la estructura.

Esta es una pregunta de seguimiento deuna pregunta anterior

Respuestas a la pregunta(1)

Su respuesta a la pregunta