En general, no puede hacerlo solo desde el espacio de usuario. procfs es el núcleo que le informa su estado de proceso. Entonces, si DESEA hacer algo como esto,
a) tiene que crear un módulo kernel que le permita comunicar el contenido b) desencadenar esa recuperación de contenido mediante una señal de algún tipo.
Por lo tanto, si REALMENTE desea hacer esto. Sugeriría la ruta siguiente:
1) Escriba un módulo del núcleo que pueda comunicar el estado del programa. Vamos a llamarlo kpsmod para nuestra discusión.
2) Hacer que se comunique con el espacio de usuario hacer que se comunique con el proceso del usuario a través de algún mecanismo (digamos enlace de red) para iniciar algún proceso de registro, que registre las direcciones de las variables. El programa de espacio de usuario le dice al módulo que está interesado en "exportarse" en una señal (digamos SIGHUP o SIGUSR1); hacer esto programable también Pase el nombre, la dirección y los tamaños para leer (con información de tipo si es necesario). Si la variable está en la pila, debe ser rechazada.Solo deben permitirse símbolos accesibles globalmente para esto (por simplicidad)
3) Incluso puede pensar en acceder a la pila de ptrace para el proceso en el momento de procesar la variable en particular.
4), entonces el módulo del núcleo debe crear un directorio/proc/kpsmod // * vars para cada variable y cuando la variable se lee
5) en leer la descarga del contenido de la memoria a través de proc (potencialmente formateado)
y listo :-) tiene el efecto deseado.