diff --git a/src/header/time/mod.rs b/src/header/time/mod.rs index 28432d3dc264a1eb5c1961e90f500361904ee6fe..581c300e8777d0ac27ef3cbc8892dcca72928906 100644 --- a/src/header/time/mod.rs +++ b/src/header/time/mod.rs @@ -138,11 +138,14 @@ pub unsafe extern "C" fn ctime(clock: *const time_t) -> *mut c_char { asctime(localtime(clock)) } -// #[no_mangle] -pub extern "C" fn ctime_r(clock: *const time_t, buf: *mut c_char) -> *mut c_char { - unimplemented!(); +#[no_mangle] +pub unsafe extern "C" fn ctime_r(clock: *const time_t, buf: *mut c_char) -> *mut c_char { + let mut tm1 : tm = core::mem::uninitialized(); + localtime_r(clock, &mut tm1); + asctime_r(&mut tm1, buf) } + #[no_mangle] pub extern "C" fn difftime(time1: time_t, time0: time_t) -> c_double { (time1 - time0) as c_double