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.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)

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



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | ライブラリ | 書式 | 解説 | 戻り値 | エラー | 関連項目 | バグ
SEMOP(2)               FreeBSD システムコールマニュアル               SEMOP(2)

名称
     semop -- セマフォ集合での不可分の操作の配列

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

書式
     #include <sys/types.h>
     #include <sys/ipc.h>
     #include <sys/sem.h>

     int
     semop(int semid, struct sembuf *array, size_t nops);

解説
     semop() システムコールは、semid によって示されたセマフォの集合で array に
     よって示された操作の配列を不可分に実行します。array の長さは、nops によっ
     て示されます。各操作は、次のように定義される struct sembuf でエンコードさ
     れます:

     struct sembuf {
             u_short sem_num;        /* セマフォ番号 */
             short   sem_op;         /* セマフォ操作 */
             short   sem_flg;        /* 操作フラグ */
     };

     array の要素ごとに、sem_opsem_flg は、集合のセマフォ番号 sem_num で実
     行される操作を決定します。値 SEM_UNDO と IPC_NOWAIT は、与えられた操作の
     振る舞いを修正するために、sem_flg メンバに論理和 (OR) されます。

     実行された操作は、次のように sem_op の値に依存します:

     •   sem_op が正であり、プロセスに変更パーミッションがあるとき、セマフォの
         値は、sem_op の値によって増加されます。SEM_UNDO が指定されるなら、終
         了値のセマフォの調整は、sem_op の値によって減少されます。sem_op のた
         めの正の値は、一般的に、セマフォと関連したリソースを解放しているプロ
         セスに対応しています。

     •   sem_op が負で、プロセスに変更パーミッションがあるとき、振る舞いは、セ
         マフォの現在の値に依存します:

         •   セマフォの現在の値が sem_op の絶対値以上であるなら、値は、sem_op
             の絶対値によって減少されます。SEM_UNDO が指定されるなら、終了値の
             セマフォの調整は、sem_op の絶対値によって増加されます。

         •   セマフォの現在の値が sem_op の絶対値未満であるなら、次の 1 つが起
             こります:

             •   IPC_NOWAIT が指定されたなら、semop() は、EAGAIN の返り値で直
                 ちに返ります。

             •   そうでなければ、呼び出しているプロセスは、次の条件の 1 つが満
                 足されるまで、スリープ状態になります:

                 •   いくつかの他のプロセスは、semctl(2) の IPC_RMID オプショ
                     ンでセマフォを削除する場合。この場合に、semop() は、EIDRM
                     の返り値で直ちに返ります。

                 •   プロセスが、捕獲されるシグナルを受信した場合。この場合
                     に、プロセスは、sigaction(2) によって定義されるように実行
                     を再開します。

                 •   セマフォの値が、sem_op の絶対値より大きいか、または等しい
                     場合。この条件が真になるとき、セマフォの値は、sem_op の絶
                     対値によって減少され、終了値のセマフォの調整は、sem_op の
                     絶対値によって増加されます。

         sem_op のための負の値は、一般的に、プロセスが、利用可能となるリソース
         を待つことを意味しています。

     •   sem_op が 0 であり、プロセスに読み込みパーミッションがあるとき、次の
         1 つが起こります:

         •   セマフォの現在の値が 0 と等しいなら、semop() は、直ちに返ることが
             できます。

         •   IPC_NOWAIT が指定されていたなら、semop() は、EAGAIN の返り値で直
             ちに返ります。

         •   そうでなければ、呼び出しているプロセスは、次の条件の 1 つが満足さ
             れるまで、スリープ状態となります:

             •   ある他のプロセスは、semctl(2) の IPC_RMID オプションでセマ
                 フォを削除する場合。この場合に、semop() は、EIDRM の返り値で
                 直ちに返ります。

             •   プロセスは、捕獲されるシグナルを受信した場合。この場合に、プ
                 ロセスは、sigaction(2) によって定義されるように実行を再開しま
                 す。

             •   セマフォの値は、0 となった場合。

     プロセスが使用中であった、セマフォごとに、カーネルは、前に暗示されるよう
     に、``終了時の調整'' 値を維持します。プロセスが終了するとき、自発的または
     非自発的に、セマフォごとの終了値の調整が、セマフォの値に追加されます。プ
     ロセスが予想外に終了するなら、リソースが解放されることを保証するためにこ
     れを使用することができます。

戻り値
     関数 semop() は、処理が成功すると値 0 を返します。そうでない場合、値 -1
     が返され、グローバル変数 errno にエラーを示す値が設定されます。

エラー
     semop() システムコールは、次の場合に失敗します:

     [EINVAL]           semid に対応するセマフォの集合ではないか、またはプロセ
                        スが、プロセスごとの SEM_UNDO 構造体の数のシステムで定
                        義された制限を越えています。

     [EACCES]           セマフォの集合の操作とモードの間の不一致のためにパー
                        ミッションが拒否されました。

     [EAGAIN]           セマフォの値が、スリープされたプロセスを結果となり、
                        IPC_NOWAIT が指定されました。

     [E2BIG]            あまりに多くの操作が、指定されました。[SEMOPM]

     [EFBIG]            sem_num が、集合のために有効なセマフォの範囲にありませ
                        んでした。

     [EIDRM]            セマフォの集合が、システムから削除されました。

     [EINTR]            semop() システムコールが、シグナルによって割り込まれま
                        した。

     [ENOSPC]           システムの SEM_UNDO プール [SEMMNU] が、満杯です。

     [ERANGE]           要求された操作によって、セマフォの現在の値 [SEMVMX] ま
                        たはその終了時の調整 [SEMAEM] が、システムに課された制
                        限を越えています。

関連項目
     semctl(2), semget(2), sigaction(2)

バグ
     semop() システムコールは、たとえ IPC_NOWAIT が指定されていたとしても、メ
     モリのウェート (待ち) をブロックします。

FreeBSD 11.4                  September 22, 1995                  FreeBSD 11.4

Table of Contents

FreeBSD マニュアル検索