Eu tenho um pequeno problema com um dos meus projetos.
Tenho tentado encontrar um exemplo bem documentado de uso de memória compartilhada, fork()mas sem sucesso.
Basicamente, o cenário é que quando o usuário inicia o programa, eu preciso armazenar dois valores na memória compartilhada: current_path que é um char * e um file_name que também é char * .
Dependendo dos argumentos do comando, um novo processo é iniciado fork()e esse processo precisa ler e modificar a variável current_path armazenada na memória compartilhada enquanto a variável file_name é somente leitura.
Existe um bom tutorial sobre memória compartilhada com código de exemplo (se possível) que você pode me indicar?
shmget()et al. e também a mmap()abordagem pura com MAP_ANON(aka MAP_ANONYMOUS) - embora MAP_ANONnão seja definida pelo POSIX. Há também POSIX shm_open()e shm_close()para gerenciar objetos de memória compartilhada. [... continuou ...]
shm_unlink()), enquanto os mecanismos que usam mmap()requerem um arquivo e MAP_SHAREDpersistir os dados (e MAP_ANONimpede a persistência). Há um exemplo completo na seção Racional da especificação de shm_open().