FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。

4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)

13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | ライブラリ | 書式 | 解説 | 戻り値 | 互換性 | 使用例 | エラー | 関連項目 | 規格 | 歴史 | 作者
SHM_OPEN(2)            FreeBSD システムコールマニュアル            SHM_OPEN(2)

名称
     shm_open, shm_unlink -- 共有メモリオブジェクト操作

ライブラリ
     標準 C ライブラリ (libc, -lc)

書式
     #include <sys/types.h>
     #include <sys/mman.h>
     #include <fcntl.h>

     int
     shm_open(const char *path, int flags, mode_t mode);

     int
     shm_unlink(const char *path);

解説
     shm_open() システムコールは、path で指定された POSIX 共有メモリオブジェク
     トをオープン (するか、オプションで作成) します。flags 引数は、open(2) に
     よって使用されるフラグのサブセット (部分集合) を含んでいます。O_RDONLY ま
     たは O_RDWR のいずれかのアクセスモードが、flags に含まれなければなりませ
     ん。また、オプションのフラグ O_CREAT, O_EXCL と O_TRUNC も指定できます。

     O_CREAT が指定されるなら、path で指定される共有メモリオブジェクトは、存在
     していないなら、作成されます。この場合、共有メモリオブジェクトは、プロセ
     スの umask 値に従ってモード mode で作成されます。O_CREAT と O_EXCL フラグ
     の両方が指定されて、path で指定された共有メモリオブジェクトが既に存在して
     いるなら、shm_open() は、EEXIST で失敗します。

     新しく作成されたオブジェクトは、0 のサイズで始めます。既存の共有メモリオ
     ブジェクトが O_RDWR でオープンされ、O_TRUNC フラグが指定されているなら、
     共有メモリオブジェクトは、0 のサイズに切り詰められます。オブジェクトのサ
     イズを ftruncate(2) を通して調整でき、fstat(2) を通して問い合わせすること
     ができます。

     新しい記述子は、execve(2) システムコールの間にクローズするように設定され
     ます。close(2)fcntl(2) を参照してください。

     FreeBSD の拡張として、定数 SHM_ANON は、shm_open() への path 引数に使用さ
     れます。この場合、匿名で、無名の共有メモリオブジェクトが、作成されます。
     オブジェクトには名前がないので、shm_unlink() へのその後の呼び出しでそれを
     削除することはできません。代わりに、共有メモリオブジェクトは、共有メモリ
     オブジェクトの最後の参照が削除されるとき、集められたゴミになります。共有
     メモリオブジェクトは、fork(2) または sendmsg(2) を通してファイル記述子を
     共有することによって、他のプロセスと共有されます。O_RDONLY をつけて匿名の
     共有メモリオブジェクトをオープンを試みることは、EINVAL で失敗します。他の
     すべてのフラグは、無視されます。

     shm_unlink() システムコールは、path で指定された共有メモリオブジェクトを
     削除します。

戻り値
     成功するなら、shm_open() は、負でない整数を返し、shm_unlink() は、0 を返
     します。両方の関数は、失敗すれば -1 を返し、errno にエラーを示す値が設定
     されます。

互換性
     path 引数は、(ほとんどの他の実装ではそうしますが) 必ずしもパス名を表すと
     いうわけではありません。同じ path をオープンする 2 つのプロセスは、path
     が、スラッシュ (`/') 文字で始まる時かつその時に限り、同じ共有メモリオブ
     ジェクトにアクセスすることが保証されます。

     O_RDONLY, O_RDWR, O_CREAT, O_EXCL と O_TRUNC フラグのみ、移植性のあるプロ
     グラムで使用されます。

     POSIX 仕様書は、共用メモリオブジェクト、または shm_open() によって返され
     た記述子で open(2), read(2), または write(2) を使用することの結果が未定義
     であることを述べています。しかしながら、FreeBSD カーネルの実装は、read(2)write(2) のためのサポートを明示的に含んでいます。

     また、FreeBSD は、sendfile(2) で共用メモリオブジェクトからデータの 0 コ
     ピー (zero-copy) 転送をサポートしています。

     共用メモリオブジェクトとそれらの内容のいずれも、リブートに渡って持続しま
     せん。

     拡張されていない共用メモリオブジェクトを書き込むので、ftruncate(2) は、あ
     らゆるデータを書き込むことができる前に、呼び出されなければなりません。
     「使用例」を参照。

使用例
     この使用例は、ftruncate(2) への呼び出しなしで失敗します:

             uint8_t buffer[getpagesize()];
             ssize_t len;
             int fd;

             fd = shm_open(SHM_ANON, O_RDWR | O_CREAT, 0600);
             if (fd < 0)
                     err(EX_OSERR, "%s: shm_open", __func__);
             if (ftruncate(fd, getpagesize()) < 0)
                     err(EX_IOERR, "%s: ftruncate", __func__);
             len = pwrite(fd, buffer, getpagesize(), 0);
             if (len < 0)
                     err(EX_IOERR, "%s: pwrite", __func__);
             if (len != getpagesize())
                     errx(EX_IOERR, "%s: pwrite length mismatch", __func__);

エラー
     shm_open() は、次の条件のために、次のエラーコードで失敗します:

     [EINVAL]           O_RDONLY, O_RDWR, O_CREAT, O_EXCL または O_TRUNC 以外
                        のフラグが、flags に含まれていました。

     [EMFILE]           プロセスが、オープンファイル記述子のための制限にとっく
                        に到達しました。

     [ENFILE]           システムファイルテーブルが、満杯です。

     [EINVAL]           O_RDONLY が、SHM_ANON を通して匿名の共有メモリオブジェ
                        クトを作成している間に指定されました。

     [EFAULT]           path 引数が、プロセスの割り付けられたアドレス空間の外
                        側を指しています。

     [ENAMETOOLONG]     全体のパス名が、1023 文字を超えました。

     [EINVAL]           path が、スラッシュ (`/') 文字で始まっていません。

     [ENOENT]           O_CREAT が、指定され、名前のある共有メモリオブジェクト
                        が、存在していません。

     [EEXIST]           O_CREAT と O_EXCL が、指定され、名前のある共有メモリオ
                        ブジェクトが、存在してます。

     [EACCES]           (読み込み、または読み込み書き込みのための) 要求された
                        パーミッションが、拒否されました。

     shm_unlink() は、次の条件のために、次のエラーコードで失敗します:

     [EFAULT]           path 引数が、プロセスの割り付けられたアドレス空間の外
                        側を指しています。

     [ENAMETOOLONG]     全体のパス名が、1023 文字を超えました。

     [ENOENT]           名前のある共有メモリオブジェクトが、存在していません。

     [EACCES]           要求されたパーミッションが、拒否されました。
                        shm_unlink() が、共有メモリオブジェクトへの書き込み
                        パーミッションを要求しました。

関連項目
     close(2), fstat(2), ftruncate(2), mmap(2), munmap(2), sendfile(2)

規格
     shm_open() と shm_unlink() 関数は、IEEE Std 1003.1b-1993 (``POSIX.1'') に
     適合すると確信しています。

歴史
     shm_open() と shm_unlink() 関数は、FreeBSD 4.3 ではじめて登場しました。関
     数は、FreeBSD 8.0 のファイルよりむしろ直接共有メモリオブジェクトを使用す
     るシステムコールとして再実装されました。

作者
     Garrett A. Wollman <wollman@FreeBSD.org> (C ライブラリサポートとこのマ
     ニュアルページ)

     Matthew Dillon <dillon@FreeBSD.org> (MAP_NOSYNC)

FreeBSD 11.2                   January 20, 2017                   FreeBSD 11.2

Table of Contents

FreeBSD マニュアル検索