RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
161413AAメッセージ・キュー・プログラム 例本 付 録 にはPOSIXおよびSystem Vのメッセージ・キュー 機 能 の 使 用 を 説 明 するサンプル・プログラムが 含 まれています。 更 なるサンプル・プログラムは/usr/share/doc/ccur/examplesディレクトリにオンラインで 提 供 されます。POSIXメッセージ・キュー 例 1ここにあるサンプル・プログラムはC 言 語 で 記 述 されています。このプログラムでは、 親 プロセスがPOSIXメッセージ・キューをオープンして、キューが 空 から 空 ではない 状 態 へ 遷 移 した 時 にリアルタイム・シグナルを 介 して 通 知 されるように 登 録 しています。 親 プロセスは 子 プロセスを生 成 し、 子 プロセスが 空 のキューへメッセージを 送 信 するまで 子 プロセスを 待 機 します。 子 プロセスはメッセージを 送 信 し、その 記 述 子 をクローズして 終 了 します。親 プロセスはリアルタイム・シグナルを 受 信 し、シグナル・ハンドラ 内 でsiginfo_t 構 造造 体 を 通して 配郤 信 されるsigev_value (si_value)を 取 得 します。 親 プロセスは 子 プロセスのテスト・メッセージを 受 信 する 前 にsi_code (SI_MESGQ)の 配郤 信 もテストします。 親 プロセスはsi_value( 共 用 体 )の 配郤 信 が 事 前 に 登 録 されたsigev_valueと 合 っていることを 検 証 します。シグナル・ハンドラは、psignalを 使 い 受 信 したリアルタイム・シグナル 値 (SIGRTMAX)も 表 示 します。psignal 関 数 はSIGRTMAXと 明 示 する 方 法 を 知 らないので、unknown signalと 判 定 し、 値 を 出力 して 終 了 します。このプログラムをビルドするには、 以 下 を 指 定 します:gcc mq_notify_rtsig.c -Wall -g -l rt -o mq_notify_rtsig#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MSGSIZE 40#define MAXMSGS 5#define VAL 1234A-1