• 締切済み

linuxにてプロセス間通信をメッセージキューに行いたいのですが、

linuxにてプロセス間通信をメッセージキューに行いたいのですが、 ある条件のときにキューに溜まったメッセージを削除したい場合はどのようにしたらいいでしょうか?

みんなの回答

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

メッセージキューはSystemV IPCを使っているという前提で。 msgctl()を使ってIPC_STATで情報を取得し、キューに溜まっているメッセージ数を0に設定してIPC_SETすれば良さそうに見えますが……

参考URL:
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/msgctl.2.html
siruhiru
質問者

お礼

私も同案を考えたのですが、キューに溜まったメッセージ数を強制的に0にしているだけでキューにはメッセージが溜まっている状態ではないのかと考え実際にサンプルプログラムを作って実行したのですが、やはり0をセットして再度IPC_STATで情報を取得したら、キューにメッセージが溜まっていました。 別処理でメッセージを受信し読み捨てる処理を作成し対応しました。 お手数おかけしました。

関連するQ&A