2017-06-08 16 views
2

私はシステムVを使用してメッセージキューを管理しています。 正常に動作するプロトタイプを作成しましたが、すべて正常に動作しますが、FIFOの代わりにLIFOキューを使用したいと考えています(最後にmsgsndというメッセージが最初に読み取られました。msgget)。システムV - LIFOの方法

これは可能ですか?

答えて

2

正しくメッセージタイプを管理している場合はあります。 msgrcvマニュアル指定:

msgtyp引き数には、以下の よう要求されたメッセージの種類を指定します。

  • MSGTYPが0の場合、キューの最初のメッセージが受信されます。

  • msgtyp が0より大きい場合、msgtypタイプの最初のメッセージが受信されます。

  • msgtypが0より小さい場合、最小タイプの最初のメッセージが で、msgtypの絶対値以下です。あなたは厳密にmsgtypが減少すると、メッセージを送信する場合

はその後、msgtypでの抽出は、常にあなたの最後の送信されたメッセージを与えるLONG_MINに等しいです。この場合、msgtypが優先順位の役割を果たし、1が最大です。

+0

ありがとう、私が探していたことです!トリッキーだが動作する。 – SlumTheSlug

-1

だと思います。

「キュー」という用語はFIFOを意味します。ウィキペディアを参照してください:

キュー(抽象データ型)コンピュータサイエンスで

、キューが(/ KJU/KYEW)コレクション内のエンティティ抽象データ型またはコレクションの特定の種類でありますエンキューと呼ばれるフロントターミナル位置からのエンティティの削除(デキューとして知られています)が順番に保持され、コレクションの主な(または唯一の)操作は、エンキューとして知られているリアターミナル位置へのエンティティの追加です。これにより、キューはFIFO(First-In-First-Out)データ構造になります。

関連する問題