c - vista - permisos para tablas
memoria cruzada adjuntar. ¿Cómo obtengo la dirección remota de un proceso hijo a un proceso principal? (1)
Las llamadas al sistema process_vm_readv
y process_vm_writev
están destinadas a la transferencia rápida de datos entre procesos. Se supone que deben usarse además de alguna forma tradicional de comunicación entre procesos.
Por ejemplo, puede usar un tubo regular o fifo para transferir las direcciones requeridas entre sus procesos. Luego puede usar esas direcciones para establecer una comunicación process_vm_
más rápida. La forma más sencilla de transferir algo entre procesos bifurcados debe ser la función pipe()
( man 2 pipe
tiene un buen ejemplo de su uso). Hay muchas otras formas de hacerlo, por supuesto, como usar sockets o mensajes. Incluso puede escribir una dirección en un archivo y dejar que el otro proceso lo lea.
Linux Kernel versión 3.2 y además tienen una capacidad llamada cross memory attach.
Aquí está el link para esto. No pude obtener mucha ayuda en ese sentido. http://man7.org/linux/man-pages/man2/process_vm_readv.2.html
En la sintaxis necesitamos la dirección de la memoria remota desde donde queremos escribir o leer. Mi pregunta es cómo obtengo la dirección de esta memoria remota si estoy usando fork ().
Supongamos que estoy enviando algo desde el proceso principal al proceso secundario usando la conexión cruzada de memoria. ¿Cómo envío la dirección de la memoria remota al proceso principal desde el proceso secundario?