Tengo un pequeño problema con uno de mis proyectos.
He estado tratando de encontrar un ejemplo bien documentado de uso de memoria compartida con fork()
pero sin éxito.
Básicamente, el escenario es que cuando el usuario inicia el programa, necesito almacenar dos valores en la memoria compartida: current_path que es un char * y un file_name que también es char * .
Dependiendo de los argumentos del comando, se inicia un nuevo proceso fork()
y ese proceso necesita leer y modificar la variable current_path almacenada en la memoria compartida, mientras que la variable file_name es de solo lectura.
¿Existe un buen tutorial sobre memoria compartida con código de ejemplo (si es posible) al que me pueda dirigir?
shmget()
et al. y también el mmap()
enfoque puro con MAP_ANON
(también conocido como MAP_ANONYMOUS
), aunque MAP_ANON
POSIX no lo define. También existe POSIX shm_open()
y shm_close()
para la gestión de objetos de memoria compartida. [… Continúa…]
shm_unlink()
), mientras que los mecanismos que usan mmap()
requieren un archivo y MAP_SHARED
persistir los datos (y MAP_ANON
excluye la persistencia). Hay un ejemplo completo en la sección Justificación de la especificación de shm_open()
.