Eu estou querendo saber o que acontece com a memória compartilhada criada shmget()
como mostrado em http://www.csl.mtu.edu/cs4411.ck/www/NOTES/process/shm/example-2.html quando qualquer um dos processos termina ou morrer? A área está liberada ou persistirá?
relate perguntas
-
Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?
-
Inicie/pare o serviço systemd usando o atalho de teclado [fechado]
-
Necessidade de algumas chamadas de sistema
-
astyle não altera a formatação do arquivo de origem
-
Passe o sistema de arquivos raiz por rótulo para o kernel do Linux
Depende se o autor do aplicativo sabe como lidar com esse problema.
Muitos aplicativos são escritos para que eles chamem
depois que eles pararam de usar o segmento de memória compartilhada.
Nesse caso, o segmento de memória continuará a existir após o programa morrer inesperadamente, por exemplo, com um coredump.
Se o programa, no entanto, chamar
shmctl(id, IPC_RMID, 0);
diretamente após anexar o segmento de memória, o kernel fará a manutenção necessária para qualquer tipo de encerramento do programa.Ele persistirá, deve ser explicitamente excluído com
shmctl IPC_RMID