use std::ffi::{CStr, c_char, c_int};
unsafe extern "C" {
fn gethostname(name: *mut c_char, len: usize) -> c_int;
}
pub(super) fn read() -> String {
let mut buffer = [0 as c_char; 256];
if unsafe { gethostname(buffer.as_mut_ptr(), buffer.len() - 1) } != 0 {
return String::new();
}
let name = unsafe { CStr::from_ptr(buffer.as_ptr()) };
name.to_string_lossy().into_owned()
}