msgctl
を呼ぶ。
CMD
が &IPC_STAT
である場合は、
ARG
は変数でなければならず、これに msqid_ds
構造体が返ってくる。
ioctl
と同様の値を返す。
すなわち、エラーがあれば undefined の値、ゼロの場合は `0 だが真'、
その他の場合は実際の返り値が返る。
msgget
を呼ぶ。
メッセージキュー ID を返す。エラーがあれば undefined の値を返す。
msgsnd
を呼び、
メッセージキュー ID が ID
のメッセージにメッセージ MSG
を送る。
MSG
の始まりはメッセージ型が long integer でなければならない
(これは `pack("L", $type)' で作成できる)。
成功すれば真、エラーがあれば偽を返す。
msgrcv
を呼び、
メッセージキュー ID
からのメッセージを受け取って
変数 VAR
に最大メッセージサイズ SIZE
で格納する。
注意: メッセージを受け取った場合、
メッセージ型は VAR
に格納した最初のものになる。
また、VAR
の最大サイズは SIZE
+ メッセージ型のサイズになる。
成功すれば真を返し、エラーがあれば偽を返す。
semctl
を呼ぶ。
CMD
が &IPC_STAT
または &GETALL
なら、
ARG
は変数でなければならず、
これに semid_ds
構造体またはセマフォ値の配列が返る。
ioctl
と同様の値を返す。
すなわち、エラーがあれば undefined の値、ゼロの場合は `0 だが真'、
その他の場合は実際の返り値が返る。
semget
を呼ぶ。セマフォ ID を返す。
エラーの場合は undefined の値を返す。
semop
を呼ぶ。
これにより、signaling
、waiting
などの
セマフォ処理を行うことができる。
OPSTRING
は、
semop
構造体の配列を pack
したものでなければならない。
semop
構造体は、
`pack("sss", $semnum, $semop, $semflag)'で作ることができる。
セマフォ処理の数は OPSTRING
の長さで暗黙の内に指定される。
成功すれば真、エラーがあれば偽を返す。$semid
のセマフォ $semnum
を待つ。
$semop = pack("sss", $semnum, -1, 0); die "Semaphore trouble: $!\n" unless semop($semid, $semop);セマフォにシグナルを送るには、`-1' を `1' に置き換えればよい。
shmctl
を呼ぶ。
CMD
が &IPC_STAT
である場合は、
ARG
は変数でなければならず、
これに shmid_ds
構造体が返ってくる。
ioctl
と同様の値を返す。
すなわち、エラーがあれば undefined の値、ゼロの場合は `0 だが真'、
その他の場合は実際の返り値が返る。
shmget
を呼ぶ。共有メモリ ID を返す。
エラーがあれば undefined の値を返す。
ID
に、
位置 POS
から サイズ SIZE
にわたって attach し、
copy in/out し、detach することで読み込み/書き込みを行う。
読み込みの際には、VAR
は変数でなければならず、
読み込まれるデータが格納される。
STRING
が短い場合は、
SIZE
バイトを満たすためヌルが書かれる。
成功すれば真、エラーがあれば偽を返す。