.\" $NetBSD: msgget.2,v 1.1 1995/10/16 23:49:19 jtc Exp $ .\" .\" Copyright (c) 1995 Frank van der Linden .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed for the NetBSD Project .\" by Frank van der Linden .\" 4. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" %FreeBSD: src/lib/libc/gen/msgget.3,v 1.7.2.4 2001/12/14 18:33:51 ru Exp % .\" .\"/ .\" $FreeBSD$ .Dd August 17, 1995 .Dt MSGGET 3 .Os .Sh 名称 .Nm msgget .Nd メッセージキューの取得 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/ipc.h .In sys/msg.h .Ft int .Fn msgget "key_t key" "int msgflg" .Sh 解説 .Fn msgget は、 .Fa key に関連するメッセージキュー ID を戻します。メッセージキュー ID は、 0 より大きい一意的な整数です。 .Pp メッセージキューは、 .Fa key が .Dv IPC_PRIVATE と等しい場合、または .Fa key に関連するメッセージキュー ID が存在せず、かつ、 .Dv IPC_CREAT ビットが .Fa msgflg で設定されている場合に作成されます。 .Pp 新しいメッセージキューが作成された場合、関連するデータ構造 ( .Fa msqid_ds 構造体。 .Xr msgctl 3 参照) は、以下のように初期化されます。 .Bl -bullet .It .Va msg_perm.cuid と .Va msg_perm.uid は、呼び出しプロセスの実効ユーザ ID に設定されます。 .It .Va msg_perm.gid と .Va msg_perm.cgid は、呼び出しプロセスの実効グループ ID に設定されます。 .It .Va msg_perm.mode は、 .Fa msgflg の下位 9 ビットが設定されます。 .It .Va msg_cbytes , .Va msg_qnum , .Va msg_lspid , .Va msg_lrpid , .Va msg_rtime , .Va msg_stime には 0 が設定されます。 .It .Va msg_qbytes は、キューのバイト数 .Pf ( Dv MSGMNB ) についてのシステムの最大値が設定されます。 .It .Va msg_ctime は、現在の時刻に設定されます。 .El .Sh 戻り値 問題なく終了すると、正のメッセージキュー ID が戻されます。問題なく 終了しないと -1 が戻され、グローバル変数 .Va errno がそのエラーを示すように設定されます。 .Sh エラー .Bl -tag -width Er .It Bq Er EACESS メッセージキューが .Fa key とすでに関連していますが、呼出し側にアクセス権がありません。 .It Bq Er EEXIST .Dv IPC_CREAT と .Dv IPC_EXCL の両方が .Fa msgflg で設定されており、メッセージキューが .Fa key とすでに関連しています。 .It Bq Er ENOSPC メッセージキューの数に関するシステム制限に達しているため、 新しいメッセージキューを作成できません。 .It Bq Er ENOENT .Fa msgflg に .Dv IPC_CREAT が設定されていない状況で、 .Fa key に関連するメッセージキューが見つかりません。 .El .Sh 関連項目 .Xr msgctl 3 , .Xr msgrcv 3 , .Xr msgsnd 3 .Pp .Sh 歴史 メッセージキューは、 .At V の最初のリリースに追加されました。 .\"kuma 1999-11-12