- copy data to or from a kernel image or running system
cc [ flag… ] file… -lkvm [ library…] #include <kvm.h> ssize_t kvm_read(kvm_t *kd, uintptr_t addr, void *buf, size_t nbytes);
ssize_t kvm_write(kvm_t *kd, uintptr_t addr, void *buf, size_t nbytes);
The kvm_read() function transfers data from the kernel image specified by kd (see kvm_open(3KVM)) to the address space of the process. nbytes bytes of data are copied from the kernel virtual address given by addr to the buffer pointed to by buf.
The kvm_write() function is like kvm_read(), except that the direction of data transfer is reversed. To use this function, the kvm_open(3KVM) call that returned kd must have specified write access. If a user virtual address is given, it is resolved in the address space of the process specified in the most recent kvm_getu(3KVM) call.
The kvm_read() and kvm_write() functions are obsolete and might be removed in a future release. The functions described on the kvm_kread(3KVM) manual page should be used instead.
On success, these functions return the number of bytes actually transferred. On failure, they return -1.
See attributes(5) for descriptions of the following attributes: