0

IPC キュー内のメッセージが順序付けされているかどうかを知る必要があります。実際には、msgrvc 関数を呼び出したときに最初のメッセージがキューに入力されたのか、選択されたメッセージがランダムなのかを知る必要があります。

さて、私がこの質問をしたのは、コード msgrcv の一部の内部で、そのコードを意図していないメッセージを受け取ったときに、通常、メッセージを再キューイングし、キュー内の次のメッセージを読み取るためです。私が疑問に思っているのは、たとえば、彼がメッセージをフォローしている場合、

msgA、msgB、msgC

、キュー内に格納されてます

msgB、msgC、msgA

したがって、次の msgrcv の呼び出しで msgB が返されるか、またはその順序がランダムな場合は、再度 msgA を読み取ることができます

ありがとう、エンツォ

4

3 に答える 3

0

IPC メッセージ キューは、その名前が示すようにキューであるため、再キューイングが機能します。

タイプを選択するよりも速いとは思いませんが、msgrcvそのタイプの最初のメッセージが見つかるまで、キュー内の各メッセージのタイプを確認するだけです。あなたのコードは、メッセージを削除し、タイプをチェックして、再度キューに入れます。

于 2013-07-26T17:13:33.593 に答える
0

IPC msg キューから何を読み取るかを選択したいようです。再キューイングする代わりに、msgrcv と msgsnd のメッセージ タイプ引数を使用できます。

于 2013-07-08T14:34:47.403 に答える