* KHPC ver.0.03の内部資料的なもの
-(by [[K]], 2016.08.08)

** 基本仕様
-KHPCの4番目のバージョン。KHPCは[[persistent-C>persistent_C]]の簡易実装を目指したツール群。
-基本方針: とにかくできるだけ手抜きをする。次のバージョンでまともにすればいい。手抜きは美徳である。

-このバージョンの目玉:pbdtolにsetintコマンドを追加

** ダウンロード
-http://khfdpl.osask.jp/download/khpc003a.zip (準備中)
-http://khfdpl.osask.jp/download/khpc003a.zip
--ソースはTab=4を想定。

** サンプルコード(1)
 #include <stdio.h>
 #include "khpc0.h"
 
 persistent int t3_flag = 0;
 
 int main(int argc, const char **argv)
 {
     int i = 0;
     persistent_load(0);
     persistent_noload();
     persistent_save(0); // セーブファイルを確実に作るため.
     while (t3_flag == 0) {
         persistent_load(1);
         i++;
         printf("    %d     \r", i);
     }
     return 0;
 }
-こんなプログラムを作って、t3.cで保存してビルドして実行すると、数字が延々とカウントアップされる。
-そしてpbdtolでsetintして、t3_flagを1にすると、プログラムは1秒以内に止まる。

-Ctrl-Cで強引に止めるのと大差ないと思うかもしれないけど、これはプログラムで自発的に止まっているので、とても安全である。
-pbdtolなんか使わなくても別のプログラムで永続変数のt3_flagを読み書きすればそれで十分ではあるが、そんなプログラムをわざわざ作らなくてもいいというのがポイントである。
-pbdtolなんか使わなくても別のプログラムで永続変数のt3_flagを読み書きすればそれで十分ではあるが、そんなプログラムをわざわざ作らなくてもいいというのが今回のポイントである。
-もちろんキー入力などをスキャンして、特定のキーが押されたら終了するというように書くことはできる。それはむしろ便利かもしれない。でも永続変数による方法なら、他のプログラムからOSに依存せずに終了信号を出すこともできるので、応用しやすいのではないかと思う。
-またCtrl-Cで止める場合とは異なり、0,1以外にもいろんな値を伝えられる。


** 関数群
-[[KHPC_v000doc01]]に準ずる。

* こめんと欄
#comment



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS