fn write_vectored()

in reverie-ptrace/src/trace/memory.rs [96:120]


    fn write_vectored(
        &mut self,
        local: &[io::IoSlice],
        remote: &mut [io::IoSliceMut],
    ) -> Result<usize, Errno> {
        Errno::result(unsafe {
            libc::process_vm_writev(
                self.0.as_raw(),
                local.as_ptr() as *const libc::iovec,
                local.len() as libc::c_ulong,
                remote.as_ptr() as *const libc::iovec,
                remote.len() as libc::c_ulong,
                0,
            )
        })
        .map(|x| x as usize)
        .or_else(|err| {
            if err == Errno::EFAULT {
                // Treat page faults as an EOF.
                Ok(0)
            } else {
                Err(err)
            }
        })
    }