Observe que C e C ++ são linguagens diferentes.
A memória compartilhada é impossível no padrão C11 ou C ++ 11 (já que o padrão não define isso), ou mesmo no C ++ 14 (cujo rascunho n3690 , e presumivelmente padrão oficial, não menciona memória compartilhada fora do multi-threading ) Então você precisa de bibliotecas extras para obter memória compartilhada. Mas alguns sistemas operacionais têm suporte para memória compartilhada. Portanto, existem várias bibliotecas que fornecem memória compartilhada, construídas acima dos serviços existentes do sistema operacional. Talvez você possa considerar o uso da biblioteca de estruturas POCO (que abstrai detalhes específicos do SO)
Para Linux (e talvez POSIX), consulte shm_overview (7) . Você precisará sincronizar, veja também sem_overview (7)
O VXWorks (que eu não conheço, mas pesquisei por ele) possui o VxMP
Você precisa entender cuidadosamente o que realmente está acontecendo. Você provavelmente deseja compartilhar apenas dados antigos simples struct
(não classes C ++!) E deve ter muito cuidado com os endereços (cada processo pode obter um endereço diferente para o segmento de memória compartilhada comum) e com a sincronização.
Como alternativa, use threads. Observe que o padrão C ++ 11 define uma biblioteca de threads .