pub fn process_vm_readv(
pid: Pid,
local_iov: &mut [IoSliceMut<'_>],
remote_iov: &[RemoteIoSlice],
flags: u32,
) -> Result<usize, Errno>Expand description
Lit la mémoire d’un autre processus sans ptrace.
Wrappeur de process_vm_readv(2) (Linux 3.2+). Lit depuis les
segments remote_iov du processus pid dans local_iov.
§Parameters
pid: PID cible (doit avoir les mêmes UID/GID ouCAP_SYS_PTRACE).local_iov: buffers locaux de destination.remote_iov: segments dans l’espace d’adressage du processus cible.flags: réservé, doit être 0.
§Errors
ESRCH: processus cible introuvable.EPERM: permissions insuffisantes.EINVAL:flagsnon nul, ouiovdépasseUIO_MAXIOV.EFAULT: adresse locale ou distante invalide.
§Examples
use air_sys_syscall::mem::process_vm_readv;
use air_sys_types::{Pid, mem::RemoteIoSlice};
use air_sys_types::net::IoSliceMut;
let mut buffer = [0u8; 64];
let mut local = [IoSliceMut::new(&mut buffer)];
let remote = [RemoteIoSlice { addr: remote_addr, len: 64 }];
let n = process_vm_readv(target, &mut local, &remote, 0)
.expect("process_vm_readv");