msem_init サブルーチン
目的
マップされたファイルまたは共有メモリー領域でセマフォーを初期化します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
#include <sys/mman.h>msemaphore *msem_init ( Sem, InitialValue)
msemaphore *Sem;
int InitialValue; 説明
MSEM_INIT サブルーチンは、新しいバイナリー・セマフォーを割り振り、新しいセマフォーの状態を初期化します。
InitialValue パラメーターの値が MSEM_LOCKEDの場合、新しいセマフォーはロック状態で初期化されます。 InitialValue パラメーターの値が MSEM_UNLOCKEDの場合、新しいセマフォーはアンロック状態で初期化されます。
セマフォー 構造体は、 mmap サブルーチンへの正常な呼び出しによって作成され、読み取りアクセスと書き込みアクセスの両方を持つ、マップされたファイルまたは共用メモリー領域内にあります。
セマフォーがマップ・ファイルに作成されるか、匿名共用メモリー領域に作成されるかにかかわらず、同じファイルまたは共用領域をマップしたプロセスによる参照は、同じファイルまたは領域オフセットの開始に解決される セマフォー 構造ポインターを使用して、同じセマフォーへの参照と見なされます。
セマフォー 構造に保管されている以前のセマフォー状態は無視され、上書きされます。
パラメーター
| 項目 | 説明 |
|---|---|
| セム | セマフォーの状態が保管されている セマフォー 構造体を指します。 |
| 初期値 | 割り振り時にセマフォーをロックまたはアンロックするかどうかを決定します。 |
戻り値
正常に実行されると、 MSEM_INIT サブルーチンは、初期化された セマフォー 構造体へのポインターを戻します。 それ以外の場合は、NULL 値を返し、エラーを示す エラー番号 グローバル変数を設定します。
エラー・コード
MSEM_INIT サブルーチンが失敗した場合、 エラー番号 グローバル変数は以下のいずれかの値に設定されます。
| 項目 | 説明 |
|---|---|
| EINVAL | InitialValue パラメーターが無効であることを示します。 |
| ENOMEM | 新規セマフォーを作成できなかったことを示します。 |