Si noti che C e C ++ sono lingue diverse.
La memoria condivisa è impossibile solo in standard C11 o C ++ 11 (poiché lo standard non lo definisce), o anche C ++ 14 (di cui n3690 bozza, e presumibilmente standard ufficiale, non menziona la memoria condivisa al di fuori del multi-threading). Quindi hai bisogno di librerie aggiuntive per ottenere memoria condivisa. Ma alcuni sistemi operativi supportano la memoria condivisa. Esistono quindi numerose librerie che forniscono memoria condivisa, costruita sopra i servizi esistenti del sistema operativo. Potresti forse prendere in considerazione l'uso della POCO libreria del framework (che riassume i dettagli specifici del sistema operativo)
Per Linux (e forse POSIX), guarda shm_overview (7) . Dovrai sincronizzarti, quindi consulta anche sem_overview (7)
VXWorks (che non conosco, ma cercato su Google) ha VxMP
Devi capire attentamente cosa sta realmente accadendo. Probabilmente vorresti condividere solo vecchi vecchi dati struct
-s (non classi C ++!) E dovresti fare molta attenzione agli indirizzi (ogni processo potrebbe ottenere un indirizzo diverso per il segmento di memoria condiviso comune) e alla sincronizzazione.
In alternativa, usa i thread. Si noti che lo standard C ++ 11 definisce una libreria di thread .