日本語 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 は現在、作成中で日々更新されています。
Table of Contents
SEMCTL(2) FreeBSD システムコールマニュアル SEMCTL(2) 名称 semctl -- セマフォの集合に関する操作を制御する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> int semctl(int semid, int semnum, int cmd, ...); 解説 semctl() システムコールは、semid によって示されたセマフォの集合で、cmd に よって示された操作を実行します。4 番目の引数、union semun arg は、cmd の 特定の値を必要とします。arg 引数を使用するコマンドについて、union semun は、次のように定義されます: union semun { int val; /* SETVAL のための値 */ struct semid_ds *buf; /* IPC_STAT と IPC_SET のためのバッファ */ u_short *array; /* GETALL と SETALL のための配列 */ }; コマンドは、次のように実行されます: IPC_STAT セマフォの集合 struct semid_ds を取って来て、それを arg.buf によって指されたメモリに格納します。 IPC_SET セマフォの集合 struct semid_ds の sem_perm.uid, sem_perm.gid と sem_perm.mode メンバを arg.buf によって指された構造体のメ ンバと一致するように変更します。呼び出しているプロセスの実効 uid は、sem_perm.uid または sem_perm.cuid のいずれかと一致し なければならず、またはスーパユーザの特権がなければなりませ ん。 IPC_RMID システムからセマフォの集合をただちに削除します。呼び出してい るプロセスの実効 uid は、セマフォの集合の sem_perm.uid また は sem_perm.cuid と等しくなければならないか、または、プロセ スは、スーパユーザの特権がなければなりません。 GETVAL セマフォ番号 semnum の値を返します。 SETVAL セマフォ番号 semnum の値を arg.val に設定します。あらゆるプ ロセスで、このセマフォのための終了値で未解決の調整は、クリア されます。 GETPID セマフォ番号 semnum の操作を実行する最後のプロセスの pid を 返します。 GETNCNT セマフォ番号 semnum の値が現在の値より大きくなるのを待ってい るプロセスの数を返します。 GETZCNT セマフォ番号 semnum の値が 0 になるのを待っているプロセスの 数を返します。 GETALL arg.array によって指された配列に集合のすべてのセマフォ値を 取って来ます。 SETALL arg.array によって指された配列の値に集合のすべてのセマフォ値 を設定します。あらゆるプロセスで、この集合のすべてのセマフォ のための終了値で未解決の調整は、クリアされます。 struct semid_ds は、次のように定義されます: struct semid_ds { struct ipc_perm sem_perm; /* 操作パーミッション構造体 */ struct sem *sem_base; /* 集合の最初のセマフォへのポインタ */ u_short sem_nsems; /* 集合のセマフォの数 */ time_t sem_otime; /* 最後の操作時刻 */ time_t sem_ctime; /* 最後の変更時刻 */ /* 1970/01/01 00:00:00 GMT から秒単位に測定された時間 */ }; 戻り値 成功すると、cmd が、GETVAL, GETPID, GETNCNT または GETZCNT の 1 つである とき、semctl() は、対応する値を返します。そうでなければ、0 が、返されま す。失敗すると、-1 が、返され、errno は、エラーを示す値に設定されます。 エラー semctl() システムコールは、次の場合に失敗します: [EINVAL] セマフォの集合が semid に対応していません。 [EINVAL] semnum 引数が、与えられたセマフォの集合のための有効な セマフォの範囲にありません。 [EPERM] 呼び出しているプロセスの実効な uid が、セマフォの集合 のの所有者または作成者の uid と一致していません。 [EACCES] パーミッションが、セマフォの集合の操作とモードの間の不 一致のために拒否されました。 [ERANGE] SETVAL または SETALL は、許可された範囲 [0 .. SEMVMX] の外側でセマフォを設定するように試みられました。 関連項目 semget(2), semop(2) バグ SETALL は、エラーを返す前に、いくつかのセマフォの要素を更新します。 FreeBSD 11.4 September 12, 1995 FreeBSD 11.4