I'm very pleased to announce the release of our new website and documentation using the new toolchain with Hugo and AsciiDoctor. To get more information about the new toolchain please read the FreeBSD Documentation Project Primer[1], Hugo docs[2] and AsciiDoctor docs[3]. Acknowledgment: Benedict Reuschling <bcr@> Glen Barber <gjb@> Hiroki Sato <hrs@> Li-Wen Hsu <lwhsu@> Sean Chittenden <seanc@> The FreeBSD Foundation [1] https://docs.FreeBSD.org/en/books/fdp-primer/ [2] https://gohugo.io/documentation/ [3] https://docs.asciidoctor.org/home/ Approved by: doceng, core
136 lines
3.9 KiB
Groff
136 lines
3.9 KiB
Groff
.\"
|
|
.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com>
|
|
.\"
|
|
.\" 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.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``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 DEVELOPERS 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/sys/shmget.2,v 1.18 2004/07/02 23:52:13 ru Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd July 3, 1995
|
|
.Dt SHMGET 2
|
|
.Os
|
|
.Sh 名称
|
|
.Nm shmget
|
|
.Nd 共有メモリの識別子の取得
|
|
.Sh ライブラリ
|
|
.Lb libc
|
|
.Sh 書式
|
|
.In machine/param.h
|
|
.In sys/types.h
|
|
.In sys/ipc.h
|
|
.In sys/shm.h
|
|
.Ft int
|
|
.Fn shmget "key_t key" "size_t size" "int flag"
|
|
.Sh 解説
|
|
.Fn shmget
|
|
は、
|
|
.Fa key
|
|
と
|
|
.Fa flag
|
|
の値に従って、新しく作成した共有メモリセグメント
|
|
または既存の共有メモリセグメントの識別子を戻します。
|
|
.\"
|
|
.\" The following bit about keys and modes also applies to semaphores
|
|
.\" and message queues.
|
|
.\"
|
|
キーはファイル名に似たもので、IPC オブジェクトを
|
|
指定するハンドルを提供するものです。
|
|
キーの指定方法には 3 つ方法があります:
|
|
.Bl -bullet
|
|
.It
|
|
IPC_PRIVATE を指定すると新しい IPC オブジェクトが作成されます。
|
|
.It
|
|
整定数を指定できます。
|
|
.Fa key
|
|
に対応する IPC オブジェクトが指定されておらず、IPC_CREAT ビットが
|
|
.Fa flag
|
|
で設定されている場合は、新しい IPC オブジェクトが作成されます。
|
|
.It
|
|
.Xr ftok 3
|
|
を使用し、パス名からキーを作成できます。
|
|
.El
|
|
.Pp
|
|
新しく作成された IPC オブジェクトのモードは、
|
|
.Fa flag
|
|
引数に渡す以下の定数の論理和
|
|
.Em ( OR )
|
|
で決まります:
|
|
.Bl -tag -width XSHM_WXX6XXX
|
|
.It Dv SHM_R
|
|
ユーザ用の読取りアクセス
|
|
.It Dv SHM_W
|
|
ユーザ用の書込みアクセス
|
|
.It Dv ( SHM_R>>3 )
|
|
グループ用の読取りアクセス
|
|
.It Dv ( SHM_W>>3 )
|
|
グループ用の書込みアクセス
|
|
.It Dv ( SHM_R>>6 )
|
|
その他用の読取りアクセス
|
|
.It Dv ( SHM_W>>6 )
|
|
その他用の書込みアクセス
|
|
.El
|
|
.\"
|
|
.\" XXX - we should also mention how uid, euid, and gid affect ownership
|
|
.\" and use
|
|
.\"
|
|
.\" end section about keys and modes
|
|
.\"
|
|
.Pp
|
|
新しい共有メモリセグメントを作成する場合、
|
|
.Fa size
|
|
は、新しいセグメントのバイト単位のサイズを表わします。
|
|
セグメントのサイズは、カーネルに便利なようにある倍数に
|
|
切り上げられることがあります (すなわちページサイズ)。
|
|
.Sh 戻り値
|
|
処理が正常に完了すると、
|
|
.Fn shmget
|
|
は共有メモリセグメントの正整数の識別子を返します。
|
|
そうでない場合は -1 が返され、エラーを示すために
|
|
.Va errno
|
|
が設定されます。
|
|
.Sh エラー
|
|
以下の場合、
|
|
.Fn shmget
|
|
システムコールは処理を失敗します:
|
|
.Bl -tag -width Er
|
|
.\"
|
|
.\" XXX What about ipcperm failing?
|
|
.\"
|
|
.It Bq Er EINVAL
|
|
指定したサイズが、既存セグメントのサイズより大きいです。
|
|
指定したサイズが、システムの最低値より小さいか、最大値より大きいです。
|
|
.It Bq Er ENOENT
|
|
.Fa key
|
|
と一致する共有メモリセグメントがなく、IPC_CREAT が指定されていません。
|
|
.It Bq Er ENOSPC
|
|
要求を満たす十分なメモリを、カーネルが割り当てられません。
|
|
.It Bq Er EEXIST
|
|
IPC_CREAT と IPC_EXCL が指定され、
|
|
.Fa key
|
|
に対応する共有メモリセグメントがすでに存在します。
|
|
.El
|
|
.Sh 関連項目
|
|
.Xr shmat 2 ,
|
|
.Xr shmctl 2 ,
|
|
.Xr shmdt 2 ,
|
|
.Xr ftok 3
|