shmgen

Section: WIN SYSTEM (1W)
Updated: 2023.2.14
Index Return to Main Contents
 

名称

shmgen - 共有メモリに RAW 形式のダミーデータを生成  

形式

shmgen [-D] outkey shmsize size rate [ logfile ]

 

解説

shmgen は、一定のサイズ size バイトのダミーデータブロックを rate ブロック/秒の速度で発生させ、 キー  outkey で与えられる共有メモリ・セグメントに巡回的に書き込みます。

共有メモリ・キーは32ビットの整数値です。  outkey をもつ共有メモリ・セグメントが存在しない場合は、大きさ  shmsize  (KB) の共有メモリ・セグメントが作られます。すでに存在している場合は、 そのサイズが  shmsize  (KB) よりも小さいとエラーになります。

共有メモリ上の形式は、「書き込み時刻付き・ブロック末尾のブロック長付き」です。 size で指定するブロック長は、共有メモリブロックの先頭と末尾に 書き込まれる「ブロック長」「書き込み時刻」を除いた正味の データ部分のサイズです。「書き込み時刻付き・ブロック末尾のブロック長付き」 の場合、共有メモリブロック先頭に4バイトの「ブロック長」、4バイトの 「書き込み時刻」、末尾に4バイトの「ブロック長」がそれぞれ 書き込まれますから、共有メモリの1ブロックが占めるサイズは size +12バイトになります。 共有メモリ上の形式については order(1W), recvt(1W) を 参照してください。

共有メモリ・セグメントでは、先頭からそのサイズの9/10の位置に しきい線が設定され、それを超えると次の書き込み/読み出し時には 先頭へ戻ります。しきい線の位置から残り1/10の部分に1ブロックが 書き込まれる可能性がありますから、  shmsize (KB) は  size +12バイトの10倍以上の大きさが必要です。

shmgen は rate の逆数をプログラム中の1ループ毎の待ち時間値として 使用しているだけですので、実現されるブロック発生レートは 正確に rate ブロック/秒にはならず、速くなるにしたがって 実際には遅めになります。ですからそれを見込んで rate を指定してください。

shmgenは raw2mq(1W) / mq2raw(1W) 等の動作テストのために 作られました。ブロックレートは raw2mq(1W) に HUPシグナルを 送ることによって測定できます。

shmgenが発生するダミーデータブロックには、先頭の タイムスタンプのみが付いていますがそれ以降のデータ部分は 書き込んでおらず、中身が不定です。shmdump(1W) で 表示することはできますが、WINフォーマットにはなっていません。

ログファイル名  logfile を指定すると、ここに動作ログがとられ、指定しないとログ情報は標準出力に 送られます ログファイルは書き込みのたび毎にオープン/クローズされます。

shmgen は、引数なしで起動すると簡単な使用法を表示します。

 

オプション

-D
デバッグ情報を出力します。
 

ソース

shmgen.c
 

関連事項

raw2mq(1W), mq2raw(1W), shmdump(1W), order(1W), recvt(1W)


 

Index

名称
形式
解説
オプション
ソース
関連事項

This document was created by man2html, using the manual pages.
Time: 07:36:42 GMT, March 23, 2025