.in +4n
union semun {
int val; /* SETVAL の値 */
- struct semid_ds *buf; /* IPC_STAT, IPC_SET 用のバッファ */
+ struct semid_ds *buf; /* IPC_STAT, IPC_SET 用のバッファー */
unsigned short *array; /* GETALL, SETALL 用の配列 */
- struct seminfo *__buf; /* IPC_INFO 用のバッファ
+ struct seminfo *__buf; /* IPC_INFO 用のバッファー
(Linux 固有) */
};
.in
.TP
\fBIPC_RMID\fP
セマフォ集合をただちに削除し、その集合上の \fBsemop\fP(2) コールでブロックされている全てのプロセスを目覚めさせる (エラー値が返されて、
-\fIerrno\fP に \fBEIDRM\fP が設定される)。 呼び出したプロセスの実効ユーザ ID が そのセマフォ集合の作成者または所有者と一致するか、
+\fIerrno\fP に \fBEIDRM\fP が設定される)。 呼び出したプロセスの実効ユーザー ID が そのセマフォ集合の作成者または所有者と一致するか、
呼び出した人が特権を持たなければならない。 \fIsemnum\fP 引き数は無視される。
.TP
\fBIPC_INFO\fP (Linux 固有)
-システム全体でのセマフォの制限とパラメータに関する情報を、 \fIarg.__buf\fP が指す構造体に入れて返す。 この構造体は \fIseminfo\fP
+ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81§ã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81®å\88¶é\99\90ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92ã\80\81 \fIarg.__buf\fP ã\81\8cæ\8c\87ã\81\99æ§\8bé\80 ä½\93ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ \fIseminfo\fP
型である。 \fIseminfo\fP は \fB_GNU_SOURCE\fP 機能検査マクロが定義された場合に \fI<sys/sem.h>\fP
で以下のように定義される:
.nf
.in +4n
struct seminfo {
- int semmap; /* ã\82»ã\83\9eã\83\95ã\82©ã\83»ã\83\9eã\83\83ã\83\97ã\81®æ\9c\80大ã\82¨ã\83³ã\83\88ã\83ª数;
+ int semmap; /* ã\82»ã\83\9eã\83\95ã\82©ã\83\9eã\83\83ã\83\97ã\81®æ\9c\80大ã\82¨ã\83³ã\83\88ã\83ªã\83¼数;
カーネル内では未使用 */
int semmni; /* セマフォ集合の最大数 */
int semmns; /* 全セマフォ集合中のセマフォの
最大数; カーネル内では未使用 */
int semmsl; /* 一つのセマフォ集合の最大セマフォ数 */
int semopm; /* semop(2) に渡す操作の最大数 */
- int semume; /* ã\83\97ã\83ã\82»ã\82¹ã\81\82ã\81\9fã\82\8aã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\83»ã\82¨ã\83³ã\83\88ã\83ª
+ int semume; /* ã\83\97ã\83ã\82»ã\82¹ã\81\82ã\81\9fã\82\8aã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\82¨ã\83³ã\83\88ã\83ªã\83¼
の最大数; カーネル内では未使用 */
int semusz; /* 構造体 sem_undo のサイズ */
int semvmx; /* セマフォの最大値 */
.TP
\fBSETALL\fP
集合の全てのセマフォの \fBsemval\fP に \fIarg.array\fP で指定された値を設定する。 その集合に関連する \fIsemid_ds\fP
-æ§\8bé\80 ä½\93ã\81® \fIsem_ctime\fP ã\83¡ã\83³ã\83\90ã\83¼ã\81®å\80¤ã\82\82æ\9b´æ\96°ã\81\99ã\82\8bã\80\82 å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81®å¤\89æ\9b´ã\81«ã\81¤ã\81\84ã\81¦ã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\83»ã\82¨ã\83³ã\83\88ã\83ª (\fBsemop\fP(2)
+æ§\8bé\80 ä½\93ã\81® \fIsem_ctime\fP ã\83¡ã\83³ã\83\90ã\83¼ã\81®å\80¤ã\82\82æ\9b´æ\96°ã\81\99ã\82\8bã\80\82 å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81®å¤\89æ\9b´ã\81«ã\81¤ã\81\84ã\81¦ã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\82¨ã\83³ã\83\88ã\83ªã\83¼ (\fBsemop\fP(2)
を参照) は消去 (clear) される。 セマフォの値の変更により、他のプロセス内でブロックされている \fBsemop\fP(2)
コールの続行が許可されると、それらのプロセスは起こされる (wake up)。 \fIsemnum\fP 引き数は無視される。
呼び出したプロセスはそのセマフォ集合に 変更 (書き込み) 許可を持たなければならない。
.TP
\fBSETVAL\fP
集合の \fIsemnum\fP 番目のセマフォの \fBsemval\fP に \fIarg.val\fP の値を設定する。その集合に関連する \fIsemid_ds\fP
-æ§\8bé\80 ä½\93ã\81® \fIsem_ctime\fP ã\83¡ã\83³ã\83\90ã\83¼ã\81®å\80¤ã\82\82æ\9b´æ\96°ã\81\99ã\82\8bã\80\82 å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81®å¤\89æ\9b´ã\81«ã\81¤ã\81\84ã\81¦ã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\83»ã\82¨ã\83³ã\83\88ã\83ªは消去される。
+æ§\8bé\80 ä½\93ã\81® \fIsem_ctime\fP ã\83¡ã\83³ã\83\90ã\83¼ã\81®å\80¤ã\82\82æ\9b´æ\96°ã\81\99ã\82\8bã\80\82 å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81®å¤\89æ\9b´ã\81«ã\81¤ã\81\84ã\81¦ã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\82¨ã\83³ã\83\88ã\83ªã\83¼は消去される。
セマフォの値の変更により、他のプロセス内でブロックされている \fBsemop\fP(2) コールの続行が許可されると、それらのプロセスは起こされる
(wake up)。 呼び出したプロセスはそのセマフォ集合に 変更 (書き込み) 許可を持たなければならない。
.SH 返り値
\fBsemzcnt\fP の値
.TP
\fBIPC_INFO\fP
-全てのセマフォ集合に関する情報を管理しているカーネルの内部配列の使用中 エントリのインデックスの最大値
+å\85¨ã\81¦ã\81®ã\82»ã\83\9eã\83\95ã\82©é\9b\86å\90\88ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92管ç\90\86ã\81\97ã\81¦ã\81\84ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\81®å\86\85é\83¨é\85\8då\88\97ã\81®ä½¿ç\94¨ä¸ ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81®æ\9c\80大å\80¤
(この情報は、システムの全てのセマフォ集合に関する情報を取得するために \fBSEM_STAT\fP 操作を繰り返し実行する際に使用できる)
.TP
\fBSEM_INFO\fP
で指定されたインデックス値が現在未使用の配列のスロットを参照いていた。
.TP
\fBEPERM\fP
-\fIcmd\fP 引き数に \fBIPC_SET\fP または \fBIPC_RMID\fP が指定され、呼び出したプロセスの実効ユーザ ID がセマフォの
+\fIcmd\fP 引き数に \fBIPC_SET\fP または \fBIPC_RMID\fP が指定され、呼び出したプロセスの実効ユーザー ID がセマフォの
(\fIsem_perm.cuid\fP で見つかる) 作成者または (\fIsem_perm.uid\fP で見つかる) 所有者でもなく、 プロセスが
\fBCAP_SYS_ADMIN\fP ケーパビリティを持たない。
.TP
.\" Like Linux, the FreeBSD man pages still document
.\" the inclusion of these header files.
Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI<sys/ipc.h>\fP
-のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID
+ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81¯å¿\85è¦\81ã\81ªã\81\84ã\80\82ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å\8f¤ã\81\84å®\9fè£\85ã\81§ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8aã\80\81 SVID
でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。
\fBIPC_INFO\fP, \fBSEM_STAT\fP, \fBSEM_INFO\fP 操作は \fBipcs\fP(1)
プログラムによって割当られた資源について情報を提供するために使用される。 将来的にはこれらは変更されるか、 \fI/proc\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82¤ã\83³ã\82¿フェースに移動されるかもしれない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\82¤ã\83³ã\82¿ã\83¼フェースに移動されるかもしれない。
.LP
\fI構造体 semid_ds\fP 内の多くのフィールドは、 Linux 2.2 では \fIshort\fP 型だったが、Linux 2.4 では
\fIlong\fP 型になった。 この利点を生かすには、glibc\-2.1.91 以降の環境下で 再コンパイルすれば十分である。