//@ignore-target: windows # Supported only on unixes fn main() { unsafe { let mut buf = vec![0u8; 32]; assert_eq!(libc::strerror_r(libc::EPERM, buf.as_mut_ptr().cast(), buf.len()), 0); let mut buf2 = vec![0u8; 64]; assert_eq!(libc::strerror_r(-1i32, buf2.as_mut_ptr().cast(), buf2.len()), 0); // This buffer is deliberately too small so this triggers ERANGE. let mut buf3 = vec![0u8; 2]; assert_eq!( libc::strerror_r(libc::E2BIG, buf3.as_mut_ptr().cast(), buf3.len()), libc::ERANGE ); } }