問題タブ [mqueue]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ipc - システム内のメッセージ キューを見つけて閉じる/リンク解除する
メッセージ キューを多用するソフトウェア コードを構築しているルートではない SLES-11 マシンがあります。いくつかのバグにより、エラーが発生しました:
mq_open: Too many open files
コマンドを使用してipcs -a
いますが、メッセージ キューが表示されません。ipcrm
そのため、コマンドを使用できません。
そのため、現在、マシンをまったく使用できません。システム内の (私が開いた) メッセージキューを見つけて閉じる方法はありますか?
情報: 私のシステムには がありません/dev/mqueue
。私もroot
ユーザーではありません
posix - POSIX メッセージ キューを作成するときに、名前の前にスラッシュを付ける必要があるのはなぜですか
POSIX メッセージ キューで名前の前に「/」を付ける必要がある特定の理由はありますか?
たとえば、「thequeue」という名前のメッセージ キューを開こうとしたとします。私は使用する必要があります:
c++ - データが存在する場合に EAGAIN を返す mq_receive
2 つのメッセージを含む mqueue がありますが、mq_receive を呼び出してもデータがプルされません。このメッセージ キューを使用した経験がないので、無知であることをお許しください。「ファイル」をエコーすると情報が表示されるため、送信側は正常に機能していると思います。
これは、メッセージ信号が生成されていない 2 つのメッセージです。PID は、mq_receive を呼び出すプロセスです。
参考までに、オープンコードはこちらです。
で、受け取りはこちら。
msgSize は、errno EAGAIN で常に -1 を返します。ドキュメントから、これはキューにメッセージがないことを意味するはずです。非ブロッキングであることに注意してください。
c - posix mqueue の不正なファイル記述子
誰でも、posix mqueue の不正なファイル記述子の問題を解決するのを手伝ってくれます。RAW ソケット パケットを読み取って mqueue に配置しようとしています。
私が得た出力は
main:64: 0 <= mq_send(mq, buffer, MAX_SIZE, 0): 不正なファイル記述子
c - mqueue のメッセージで構造体を渡す
IP/RAW ソケット パケットをそのパラメーター (IP パケットへの char ポインターとそのサイズなど) と共に読み取り、それを WRONLY モードで mqueue に入れ、RDONLY モードでキューから同じパラメーターを取得しようとしています。メッセージ(msg)の送受信に構造を使用しています。メッセージの送信中、両方のパラメーターがキューに正常に配置されますが、取得中にセグメンテーション違反が返されます。私の送受信ファイルは以下のとおりです。
mq_send.c
mq_receive.c
mqueue_send.c の出力:
mq_receive.c の出力:
c - Posix メッセージ キュー QSIZE クエリ
mq_send()/mq_receive() を実行する前後に「cat /dev/mqueue/myqueue」を使用してメッセージ キューの QSIZE を調べると、mq_recieve() の後にキューにいくつかのバイトが残っているように見えます。私の小さなテストプログラムは以下の通りです:
最初に 62 バイトがキューに入れられ、14 バイトのメッセージを送受信した後に 48 バイトの残りが残る理由がわかりません。どんな助けでも大歓迎です。
敬具
ジョン・ダフィー