I have an existing program which I need to communicate with over IPC. I can modify small parts of it but can't add any fancy solutions like shared memory, pipes or sockets. So I'd like to communicate with functions that directly read / write into the programs address space:
process_vm_writevon linuxWriteProcessMemoryon windowsmach_vm_writeon macOS
If I modify a value in memory with one of these functions is the possibly cached copy of the old value invalidated? If not is a volatile pointer enough to instantly retrieve the new value?