调用 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::SysV
和 IPC::Semaphore
的文档。
可移植性问题:"perlport 中的 semop".