SharedMemory Problem
-
Hi
ich nutze ein SharedMemory Segment in meinem Programm. Dort mach ich an einer bestimmten Stelle einen fork() und anschließend einen execl() um ein neus Programm auszuführen.
In diesem möchte ich mir jetzt das SharedMem.Segment wieder anhängen. Den Key gebe ich mir dafür mit. shmget/shmat funktionieren auch ohne fehlermeldung. Nur sobald ich dann die Daten darin verwenden möchte reagiert das Progamm nicht mehr. Es stürzt nicht ab, es passiert blos gar nix mehr.
Mir sind die Ideen ausgegangen, woran das liegen kann, damit greife ich auf das Segmetn im neue Programm zu:
Acces shared memory segment long shrdMem_key = atol(argv[2]); //Get the shared memory segment if ((shrdMem_id = shmget(shrdMem_key, 0, 0644)) < 0) //Get the shared memory segment {printf("shmget fail\n");exit(1);} SessionInfo **sms = (SessionInfo**) shmat(shrdMem_id, 0, 0); if (*sms < 0) {printf("attach fail\n");exit(1);} int slot = atoi(argv[3]); //Jetzt sollte es ja da sein und verwendet werden können printf("Session-ObPid: %d\n", sms[slot]->getPid()); //Bei der ersten Verwendung geht irgendwas in die Hose.....