12.07.2015 Views

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!