![]() |
|||
| | HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 | | |||
|
HOME >> アルファベットで関数を検索 >> semop
semop [SYSTEMV IPCのsemctl システムコールを実行し、セマフォを操作する]
[関数の使い方・書式]
○ = semop ☆,★
[関数の機能] セマフォの取得や解放などの操作を行ないます。 [書式の例] semop($id, $opstring);
サンプルソース
● セマフォ値が0になるまで待機し、獲得時セマフォ値を増数してメッセージを出力
require "sys/ipc.ph";
require "sys/msg.ph";
$| = 1;
# セマフォIDを取得する
$id = shift;
unless (defined $id) { die "Usage: $0 SemphoreID\n"; }
$semnum = 0;
# セマフォが0になるまで待機
$opstring1 = pack("sss", $num, 0, 0);
# セマフォの値を増数
$opstring2 = pack("sss", $num, 1, 0);
$opstringA = $opstring1 . $opstring2;
semop($id, $opstring) || die "Semaphore trouble: $!\n";
print "処理完了\n";
● セマフォ値が1になるまで待機し、獲得時セマフォ値を増数してメッセージを出力
# セマフォIDを取得する
$id = shift;
die "Usage: $0 SemphoreID\n" unless defined($id);
$semnum = 0;
# セマフォの値を増数
$opstringB = pack("sss", $semnum, -1, 0);
semop($id, $opstringB) || die "Semaphore trouble: $!\n";
print "セマフォ獲得\n";
|
||||||||||||||||||||||||||||||||||||||||||||||