У меня есть Vec<u8>
, который притворяется большим диском:
lazy_static! {
static ref DISK: Mutex<Vec<u8>> = Mutex::new(vec![0; 100 * 1024 * 1024]);
}
Мой код Rust (вызывается непосредственно из C) имеет некоторые функции для чтения и записи на этот диск, но я нене понимаю, что я написал бы в этих функциях для memcpy между диском и вызывающей стороной C (или если Vec
- лучшая структура для использования здесь вообще):
extern "C" fn pread(
_h: *mut c_void,
buf: *mut c_char,
_count: uint32_t,
offset: uint64_t,
_flags: uint32_t,
) -> c_int {
// ?
}
extern "C" fn pwrite(
_h: *mut c_void,
buf: *const c_char,
_count: uint32_t,
offset: uint64_t,
_flags: uint32_t,
) -> c_int {
// ?
}