title: process_vm_writev not able to write to the same address that I was able to read from
body: <p>I am writing a C++ program in an Ubuntu machine. I am using the function calls <code>process_vm_readv</code> and <code>process_vm_writev</code> from the <code>&lt;sys/uio.h&gt;</code> library to attempt to search for a value in the memory of another process and then write a different value.</p>
  
  <p>I am able to successfully search and find (through the proceess_vm_readv function) the data I want to change. I capture the address that it is at, and I attempt to use the <code>process_vm_writev</code> but the return value is -1 and <code>errno</code> is set to 14 which stands for <code>bad address</code></p>
  
  <p>Is there any reason I shouldn't be able to write to some memory where I can also read? The data I am looking for is found at address <code>0x6005df</code> but I cannot actually start writing data back until <code>0x601000</code>. </p>