Tenga en cuenta que C y C ++ son lenguajes diferentes.
La memoria compartida es imposible en C11 puramente estándar , o C ++ 11 (ya que el estándar no define eso), o incluso C ++ 14 (cuyo borrador n3690 , y presumiblemente estándar oficial, no menciona la memoria compartida fuera del multihilo ) Por lo tanto, necesita bibliotecas adicionales para obtener memoria compartida. Pero algunos sistemas operativos tienen soporte para memoria compartida. Por lo tanto, existen varias bibliotecas que proporcionan memoria compartida, creadas sobre los servicios existentes del sistema operativo. Quizás podría considerar usar la biblioteca de marco POCO (que resume los detalles específicos del sistema operativo)
Para Linux (y tal vez POSIX), busque en shm_overview (7) . Tendrá que sincronizar, así que vea también sem_overview (7)
VXWorks (que no sé, pero busqué en Google) tiene VxMP
Necesita comprender cuidadosamente lo que realmente está sucediendo. Probablemente desee compartir solo datos antiguos simples struct
(¡no clases de C ++!) Y debe tener mucho cuidado con las direcciones (cada proceso puede obtener direcciones diferentes para el segmento común de memoria compartida) y la sincronización.
Alternativamente, use hilos. Observe que el estándar C ++ 11 define una biblioteca de hilos .