基本仕様KHPCの3番目のバージョン。KHPCはpersistent-Cの簡易実装を目指したツール群。できるだけ手抜きをする。次のバージョンでまともにすればいい。↑ダウンロードhttp://khfdpl.osask.jp/download/khpc002a.zipソースはTab=4を想定。1で起動すると、1つ目のコンソールは偶数に反応して1を加算し、もう一つのコンソールは奇数に反応して1を加算するので、数字が増え続けます。このプログラムを実行するとOSによってはHDDやSSDの寿命を大幅に縮めるような過酷な書き込み命令を発行してしまうかもしれません。それが心配ならRAMディスクなどを用意して、その上での実行をお勧めします。いうツール(Windows用)を使って実行しています。↑サンプルコード(2)簡単な早押しクイズゲームを作ってみました。クイズゲームとはいっても、答えるのはコンピュータです。0;}マスターは1つだけ起動します。スレーブは0~4の引数を付けて起動します。マスターが出題し、スレーブが回答します。マスターは得点の管理もします。得点は永続変数ではないので、マスターをCtrl-Cして再起動すると全部0点に戻ります。点数を永続変数にしないのは、永続変数にすると処理がちょっと面倒になるからです(後述)。こちらもRAMディスク上での実行をお勧めします。建前としては「早押し」ということになっていますが、実際は必ずしも早押しにはなっていません。出題されてマスターによってsaveされて、その直後に運よくloadできて答えをsaveできたスレーブが「勝つ」べきなのですが、もしかしたらその直後にのろまなプログラムがいて周回遅れの回答をsaveするかもしれません(たまに起こりうる)。この場合、答えは上書きされてしまうので、先に答えたスレーブの結果はなくなってしまいます。とで違っているのでそんな上書き問題はないと思うかもしれませんが、slv[1]の内容は前回load時の値がそのまま使われるだけなので、のろまさんが再読み込みしない限り最新の値は反映されないのです。この上書き問題がありうるので、マスターは毎回save前に出題を書き直しています。この上書き問題があるので、点数は永続変数を使っていません。スレーブによって加算される前の点数が保存され、それをマスターが読みだしてしまうと、もはや訳が分からなくなりそうです。マスターはとにかく回答が検出できるまでは次の問題には進まないので、速いスレーブがのろまなスレーブに邪魔されても、めげずにまた書き込めば、勝つチャンスはあります。議論やっかいな上書き問題をひとまず無視すれば、このプログラム例はかなりシンプルだと思う。OSに依存したスレッド制御命令を必要とせず、とても単純な機構で変数を共有化できている。更新が中途半端なところで保存されることはないし、ロードが中途半端の段階で見えてしまうということもないので、データの整合性は常に保障される。共有メモリ型だとこれは保証しにくい。上書き問題をどうするかであるが、変数をグループに分けて、このプログラムではこの変数群は読み込みはするが保存はしない、この変数群は保存はするが読み込みはしない、などの設定で解決することができる(その場合グループごとにセーブファイルの名前も違うようにしておく)。その機能はすでにこのバージョンに組み込まれているが、使い方が少し面倒なので紹介していない。書き換え頻度が高くなければ、上書き衝突の確率は下がって大きな問題にはならないし、それに単に変数を永続化することの延長で変数の共有化を記述できるのなら、手軽さはかなりのものだと思う。関数群KHPC_v000doc01に準ずる。