私はシステムVを使用してメッセージキューを管理しています。 正常に動作するプロトタイプを作成しましたが、すべて正常に動作しますが、FIFOの代わりにLIFOキューを使用したいと考えています(最後にmsgsnd
というメッセージが最初に読み取られました。msgget
)。システムV - LIFOの方法
これは可能ですか?
私はシステムVを使用してメッセージキューを管理しています。 正常に動作するプロトタイプを作成しましたが、すべて正常に動作しますが、FIFOの代わりにLIFOキューを使用したいと考えています(最後にmsgsnd
というメッセージが最初に読み取られました。msgget
)。システムV - LIFOの方法
これは可能ですか?
正しくメッセージタイプを管理している場合はあります。 msgrcv
マニュアル指定:
msgtyp引き数には、以下の よう要求されたメッセージの種類を指定します。
MSGTYPが0の場合、キューの最初のメッセージが受信されます。
msgtyp が0より大きい場合、msgtypタイプの最初のメッセージが受信されます。
msgtypが0より小さい場合、最小タイプの最初のメッセージが で、msgtypの絶対値以下です。あなたは厳密に
msgtyp
が減少すると、メッセージを送信する場合
はその後、msgtyp
での抽出は、常にあなたの最後の送信されたメッセージを与えるLONG_MIN
に等しいです。この場合、msgtyp
が優先順位の役割を果たし、1が最大です。
だと思います。
「キュー」という用語はFIFOを意味します。ウィキペディアを参照してください:
キュー(抽象データ型)コンピュータサイエンスで
、キューが(/ KJU/KYEW)コレクション内のエンティティ抽象データ型またはコレクションの特定の種類でありますエンキューと呼ばれるフロントターミナル位置からのエンティティの削除(デキューとして知られています)が順番に保持され、コレクションの主な(または唯一の)操作は、エンキューとして知られているリアターミナル位置へのエンティティの追加です。これにより、キューはFIFO(First-In-First-Out)データ構造になります。
ありがとう、私が探していたことです!トリッキーだが動作する。 – SlumTheSlug