semop KEY,OPSTRING

调用 System V IPC 函数 semop(2) 用于信号量操作,例如信号和等待。OPSTRING 必须是打包的 semop 结构数组。每个 semop 结构可以使用 pack("s!3", $semnum, $semop, $semflag) 生成。OPSTRING 的长度表示信号量操作的数量。成功返回 true,错误返回 false。例如,以下代码等待信号量 ID 为 $semid 的信号量 $semnum

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

要发出信号量,将 -1 替换为 1。另请参见 "perlipc 中的 SysV IPC" 以及 IPC::SysVIPC::Semaphore 的文档。

可移植性问题:"perlport 中的 semop".