5部 関数リファレンス

semop

semop KEY,OPSTRING


シグナルを送信や、待ち合わせなどのセマフォ操作を行なうために、System V IPC関数semopを呼び出します。

OPSTRINGは、semop構造体のpackされた配列でなければなりません。semop構造体は、それぞれ、pack("sss", $semnum, $semop, $semflag)のように作ることができます。セマフォ操作の数は、OPSTRINGの長さからわかります。成功時には真を、エラー時には偽を返します。 

semopの使い方

$semop = pack("sss", $semnum, -1, 0);
die "Semaphore trouble: $!\n" unless semop($semid, $semop);

上記は、セマフォ ID$semidのセマフォ$semnumで待ち合わせを行ないます。セマフォにシグナルを送るには、"-1"を "1" に変更してください。

関連記事