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 新規セマフォーを作成できなかったことを示します。