#include <fcntl.h> /* For O_* constants */
#include <sys/stat.h> /* For mode constants */
#include <semaphore.h>
sem_t *sem_open(const char *name, int oflag);
sem_t *sem_open(const char *name, int oflag,
mode_t mode, unsigned int value);
oflag 引数には、 sem_open() の動作を制御するフラグを指定する (oflag の値の定義は <fcntl.h> のインクルードにより得られる)。 oflag に O_CREAT が指定されると、まだ存在しない場合にはそのセマフォが作成される。 セマフォの所有者 (ユーザー ID)、グループ所有権 (グループ ID) には、 それぞれ呼び出し元プロセスの実効 UID、実効 GID が設定される。 oflag に O_CREAT と O_EXCL の両方が指定された場合、指定された名前 name のセマフォがすでに存在するとエラーが返される。
oflag に O_CREAT を指定する場合、さらに引数が 2 つ必要である。 mode 引数は、 open(2) と同じように、新しいセマフォに設定されるアクセス許可 (permission) を 指定する。許可設定はプロセスの umask でマスクされる (許可ビットのシンボル定義は <sys/stat.h> のインクルードにより得られる)。 セマフォにアクセスしようとするユーザーは、読み出し許可と書き込み許可の 両方を得る必要がある。 value 引数は新しいセマフォの初期値を指定する。 O_CREAT が指定され、指定した名前 name のセマフォがすでに存在する場合、 mode と value は無視される。
| インターフェース | 属性 | 値 |
| sem_open() | Thread safety | MT-Safe |
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]