問題タブ [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.

0 投票する
1 に答える
849 参照

ipc - POSIX メッセージ キュー フォルダー

数日間、リモートで POSIX メッセージ キューを使用して作業しています。自分の PC で実行したいのですが、キューが作成される /dev/mqueue フォルダーがないことがわかりました。つまり、それらがどこにあるか (存在するかどうか) がわからないため、プログラムが予期せず終了した場合に、そこにアクセスしてそれらを削除することはできません。

「ゾンビ」キューが原因でコードが適切に実行されていないことに気付きましたが、セマフォや共有メモリ (/dev/shm でホストされている) と同様に、そのフォルダーからそれらを削除することはできません。

これに関するいくつかの構成は次のコマンドで実行できると思いますが、何かを変更する前に、何をしているのかを知りたいです。

誰かが私に解決策を与えることができるように、私はあなたに私の問題を示すことができたことを願っています.

前もって感謝します、

エドゥアルド

0 投票する
1 に答える
124 参照

c++ - mqqueue を使用してバッファにデータを読み込む際の問題

スレッド間の通信にmqueueを使用していますが、オブジェクトの受け渡しに問題があります。

mq_sendとをオブジェクトのパラメーターとしてmq_receive受け取ります。char*

私はそれらを次のように使用します。

それから

ここまでは順調ですね。

問題はここにあります

バッファを 2 回目にキャストすると、ガベージが発生します。について読んだところstatic_castdynamic_cast何が問題なのかわかりません。

なにが問題ですか?

0 投票する
1 に答える
226 参照

c - mqueue メッセージ サイズを増やした後にマルチスレッドを作成できない

私の C ソフトウェアでは、10 個のスレッド (マルチスレッド) を作成し、メッセージ キューにメッセージを書き込みました。また、キューを監視し、キューの反対側からデータを排出するためのスレッドをもう 1 つ作成しました。

正常に実行されましたが、メッセージ サイズがデフォルト (10) のままでした。

フォーラムから、「echo number>/proc/sys/fs/mqueue/msg_max」を実行して mqueue サイズを増やす方法を学びました。Linux (Ubuntu) では「number」を 100 にします。

しかし、この変更の後、ソフトウェアを再度実行すると、4 つを超えるスレッドを作成 (pthread_create) できません。他の 7 つのスレッドの作成では、エラーが報告されます。キューが小さすぎることを除けば、すべて問題ありませんでした。

ソフトウェアを再度実行できるように、msg_max のデフォルト値を復元する方法を教えてください。

また、mqueue サイズを増やす他の方法はありますか?

どうもありがとう。

乾杯、

ジャニス

0 投票する
0 に答える
107 参照

c++ - mqueue の作成が利用可能になるまで待つ方法は?

mqueue.h のキューを多用するプログラムを作成する必要があります。/proc/sys/fs/mqueue/queues_max問題は、私が変更できない限界に簡単に到達できることです。ハードスピンせずに新しいキューの作成が利用可能になるまで待つことは可能ですか? 私は次のようなことを意味します