、 我々はmsqidが一意のキュー識別子ですの場合、キーは何であるmsgget()
システムコールシステムv IPCの「キー」とは何ですか? System Vメッセージキューで
int msqid = msgget(key, 0666 | IPC_CREAT);
を使用してメッセージキュー識別子を取得しますか?ユニークなキュー識別子でもないのですか?
すべてその人のページが、この
であると言いmsgget()システムコールはkey引数
の値に関連付けられたシステムVメッセージキューの識別子を返すものの何の説明はありませんそのキーは実際には。それは値がIPCツールの束である何らかのハッシュテーブルの鍵ですか?私はthisの記事を読んだが、まだまだ泥だ。
また、人々は一般的にftok()
を使用してキーを生成します。
key_t ftok(const char *pathname, int proj_id);
ftok()関数は、(既存の、アクセス可能なファイルを参照しなければならない)指定されたパス名で指定されたファイルと(非ゼロでなければならない)PROJ_IDの最下位8ビットのアイデンティティを使用しkey_t型System V IPCキーを生成する
なぜ、誰かがファイルのiノードをハッシュして一意の番号を生成したいのですか?個人的には、共通のファイルに同意するすべてのプロセスよりも、共通の番号に同意するすべてのプロセスを実装する方が簡単だと思います。 this回答の状態が一様な配布目的のためだけですか?
"msqidが一意のキュー識別子である場合、そのキーは何ですか?一意のキュー識別子でもありませんか?" 'msqid'はプロセス内でのみユニークです。 'key'はグローバルにユニークです。 – kaylum