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" に変更してください。