ミスティーネットPerl・CGI講座 パール・CGIレッスン MISTY-NETレンタルサーバー・PERLプログラミング講座 CGI&PERL究極のレシピ
| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 |
Perl言語リファレンス

ミスティーネットPerl・CGI講座/基本編
ミスティーネットPerl・CGI講座/基本編
始めに 始めに
変数について 変数について
処理の制御1 処理の制御1
処理の制御2 処理の制御2
配列の処理 配列の処理
ハッシュの処理 ハッシュの処理
数値の扱い 数値の扱い
文字の扱い 文字の扱い
時間の処理 時間の処理
サブルーチン サブルーチン
ファイルの処理 ファイルの処理
ディレクトリの処理 ディレクトリ処理
CGIについて CGIについて
漢字の処理 漢字の処理
    (文字コード)
Cookie の処理 Cookie の処理
正規表現1 正規表現1
正規表現2 正規表現2
演算子について 演算子について
ライブラリ ライブラリ
デバッグ デバック
環境変数について 環境変数
ミスティーネットPerl・CGI講座/基本編

ミスティーネットPerl・CGI講座/応用編
ミスティーネットPerl・CGI講座/応用編
カウンターを作ってみよう カウンターを
     作ってみよう!
ミニゲームを作ってみよう ミニゲームを
     作ってみよう!
ミスティーネットPerl・CGI講座/応用編

  HOME >> アルファベットで関数を検索 >> msgrcv
msgrcv [SYSTEMV IPC の MSGCTL システムコールを実行し、メッセージキューからメッセージを受信する]
[関数の使い方・書式]

msgrcv ,,,

(スカラー) メッセージキューID。 ・・・ 対象のキューを指定。msgget などで取得。
(スカラー) メッセージ受信用変数。 ・・・ 受信したメッセージを格納。
(スカラー) 最大メッセージ長。 ・・・ 受信バイト数。受け取るメッセージより短い場合はエラー。
(スカラー) メッセージタイプ。 ・・・ 取り出すメッセージの指定。
(スカラー) フラグ。
(スカラー) 成功時は真(1)、エラー時は偽(未定義値) を返します。


[関数の機能]
メッセージキューIDのキューからメッセージを最大メッセージ長バイト受信します。 成功した場合、そのメッセージはキューから削除されます。
プラットフォームで SYSTEMV IPC がサポートされている必要があります。エラー発生時には、$! エラーコードがセットされます。
指定されたタイプのメッセージが全く得られない場合、フラグによって振る舞いが変わります。

● フラグの値と意味
意味
&IPC_NOWAIT ブロックせず直ちにエラーを返します。&IPC_NOWAIT がセットされていない場合は、メッセージが届くまでブロック(待機)します。
&MSG_EXCEPT メッセージタイプの値と意味を参照。
&MSG_NOERROR 最大メッセージ長よりメッセージが長い場合、メッセージを切り詰めます。

● メッセージタイプの値と意味
意味
0 キューの最初にあるメッセージが読みこまれています。
整数 フラグに &MSG_EXCEPT が指定されていなければ、メッセージタイプと同じタイプで、キューの最も先頭にあるメッセージが読みこまれます。 &MSG_EXCEPT が指定されていた場合は、メッセージタイプと異なるタイプで、キューの最も先頭にあるメッセージが読みこまれます。
負数 指定したメッセージタイプの絶対値以下で、かつ最小のメッセージタイプを持つメッセージの中から、キューの最も先頭にあるものが読みこまれます。



[書式の例]
$ret = msgrcv $gid, $message, $size, $msgtype, $flags;


サンプルソース
● $gid を持つメッセージキューから受信し、アンパック後メッセージタイプとメッセージを表示

require "sys/ipc.ph";
require "sys/msg.ph";
$| = 1;
($gid = shift) or die "Usage: $0 messaegID\n";
unless (msrcv($gid, $recv, 512, 0, 0)) {
	die "メッセージの受信失敗: $!\n";
}
($type, $message) = unpack("La*", $recv);
print "タイプ = %d:%s\n", $type, $message;



| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問い合わせ | ミスティーネット |
(C)Copyright 2002 ミスティーネット Inc. All Right Reserved.