Fix libc module name for FreeBSD
This commit is contained in:
parent
73cfcc60e1
commit
8600fefd9c
@ -167,22 +167,20 @@ impl StdError for JoinPathsError {
|
||||
#[cfg(target_os = "freebsd")]
|
||||
pub fn current_exe() -> io::Result<PathBuf> {
|
||||
unsafe {
|
||||
use libc::funcs::bsd44::*;
|
||||
use libc::consts::os::extra::*;
|
||||
let mut mib = [CTL_KERN as c_int,
|
||||
KERN_PROC as c_int,
|
||||
KERN_PROC_PATHNAME as c_int,
|
||||
let mut mib = [libc::CTL_KERN as c_int,
|
||||
libc::KERN_PROC as c_int,
|
||||
libc::KERN_PROC_PATHNAME as c_int,
|
||||
-1 as c_int];
|
||||
let mut sz: libc::size_t = 0;
|
||||
let err = sysctl(mib.as_mut_ptr(), mib.len() as ::libc::c_uint,
|
||||
ptr::null_mut(), &mut sz, ptr::null_mut(),
|
||||
0 as libc::size_t);
|
||||
let err = libc::sysctl(mib.as_mut_ptr(), mib.len() as ::libc::c_uint,
|
||||
ptr::null_mut(), &mut sz, ptr::null_mut(),
|
||||
0 as libc::size_t);
|
||||
if err != 0 { return Err(io::Error::last_os_error()); }
|
||||
if sz == 0 { return Err(io::Error::last_os_error()); }
|
||||
let mut v: Vec<u8> = Vec::with_capacity(sz as usize);
|
||||
let err = sysctl(mib.as_mut_ptr(), mib.len() as ::libc::c_uint,
|
||||
v.as_mut_ptr() as *mut libc::c_void, &mut sz,
|
||||
ptr::null_mut(), 0 as libc::size_t);
|
||||
let err = libc::sysctl(mib.as_mut_ptr(), mib.len() as ::libc::c_uint,
|
||||
v.as_mut_ptr() as *mut libc::c_void, &mut sz,
|
||||
ptr::null_mut(), 0 as libc::size_t);
|
||||
if err != 0 { return Err(io::Error::last_os_error()); }
|
||||
if sz == 0 { return Err(io::Error::last_os_error()); }
|
||||
v.set_len(sz as usize - 1); // chop off trailing NUL
|
||||
|
Loading…
x
Reference in New Issue
Block a user