PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : queue aus Speicher entfernen



Dschensen
16-08-2007, 13:14
Hallo!

Ich habe folgendes Problem. Ich programmiere nach Posix eine einfache Echtzeitanwendung. Wenn ich nun (durch ungewollten Programmabbruch o.ä.) eine Message Queue nicht mit mq_unlink entferne, bleibt der Name der Queue beim nächsten Programmaufruf gesperrt. Das ist für die Entwicklungszeit ungemein störend. Wie kann ich den Speicher von der Queue-Leiche befreien?

nul
29-08-2007, 11:00
eventuell koenntest du im Program das Signal abfangen mit dem dein Programm beendet wird und damit die Queue entfernen.

anda_skoa
29-08-2007, 14:38
Vielleicht hilft dir das Tool
ipcrm
weiter

Ciao,
_

jan61
29-08-2007, 19:16
eventuell koenntest du im Program das Signal abfangen mit dem dein Programm beendet wird und damit die Queue entfernen.

Ja, das geht mit signal(), mit dem man den relevanten Signalen einen Handler zuweisen kann. siehe man signal. Was man allerdings beachten muss: SIGKILL und SIGSTOP lassen sich nicht abfangen, in diesem Fall muss man auf externe Tools wie von anda_skoa empfohlen zurückgreifen.

Jan