OpenSuse Linux LEAP 15.1:
In einem c++-Programm möchte ich im ersten Prozess ein Shared Memory mit shmget(...) und shmat(...) anlegen und in dem angelegtem Speicher ein cpp-Object abspeichern.
Im zweiten Prozess möchte ich aus dem Shared Memory unter der Adresse, die shmat() zurückliefert, das im ersten Prozess gespeicherte Objekt zurücklesen.
Das Problem ist: Beim Lesen des Objects aus dem Shared memory über eine C++-Funktion wird Programmcode ausgeführt, der im Shared Memory gespeichert ist. Als Zugriffsattribute für das Shared Memory ist aber nur lesen/schreiben und kein execute möglich.
Hat jemand einen Lösungsvorschlag?
Im Gegensatz gibt es in Windows das Problem nicht, da kann man ein C++-Objekt im Shared Memory abspeichern und Objekt-Funktionen ausführen.