Freigegebenen Speicher mit ipcrm unter Linux löschen

Ich arbeite mit einer Shared Memory-Anwendung und verwende den folgenden Befehl, um die Segmente zu löschen:

 ipcrm -M 0x0000162e (this is the key)

Aber ich weiß nicht, ob ich die richtigen Dinge tue, denn wenn ich renneipcs Ich sehe das gleiche Segment aber mit dem Schlüssel 0x0000000. Ist das Speichersegment also wirklich gelöscht? Wenn ich meine Anwendung mehrmals ausführe, werden mit dem Schlüssel 0x000000 verschiedene Speichersegmente angezeigt, wie folgt:

 key        shmid      owner      perms      bytes      nattch     status
 0x00000000 65538      me         666        27         2          dest 
 0x00000000 98307      me         666        5          2          dest 
 0x00000000 131076     me         666        5          1          dest
 0x00000000 163845     me         666        5          0

Was passiert eigentlich? Ist das Speichersegment wirklich gelöscht?

Bearbeiten Das Problem bestand - wie in der akzeptierten Antwort unten erwähnt - darin, dass zwei Prozesse den gemeinsam genutzten Speicher verwendeten. Bis alle Prozesse geschlossen waren, wird das Speichersegment nicht verschwinden.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage