pub unsafe fn __realpathat<P: AsRef<Path>>(
    fd: i32,
    path: P,
    buf: &mut [u8],
    flags: i32,
) -> Result<size_t, Errno> {
    let fd = fd as usize;
    let path = CString::new(path.as_ref());
    let path_ptr = path.as_ptr() as usize;
    let buf_ptr = buf.as_mut_ptr() as usize;
    let buf_len = buf.len();
    let flags = flags as usize;
    unsafe { syscall5(SYS___REALPATHAT, fd, path_ptr, buf_ptr, buf_len, flags) }
}
