サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
1: 2004-05-05 (水) 21:37:40 ソース
Line 1: Line 1:
 +* lib_getsigのページ
 +-(2004.05.05 by [[K]])
 +-みんなのソースを見ていると、誰もがgetsignal()やgetsignalw()を作って使っています。しかし中身は僕が作ったときのままで、手を加えたものを見たことがありません。
 +-これを考えて僕は反省しています。確かにgetsignalにほとんど創意工夫の余地がありません。そんなものを毎回書かせていたことは、ソースをむやみに長くして読みにくくしていただけでしょう。
 +-ということで、lib_getsig系の関数を作りました。良かったこれを使ってください。またintroでの説明も順次こちらの説明に切り替えようと思っています。また、たいていの場合、lib_getsig系を使うほうがコンパクトで速くなります(わずかな差ですが)。
 +*** ダウンロード
 +-osa_dir3以降にバンドルされますが、osa_dir3が出るまで待つ必要はないので、待てない人はこちらからどうぞ。
 +--http://k.hideyosi.com/test061.lzh (18.8KB)
 +* 関数一覧
 +-lib_initsignalbox系
 +--lib_initとlib_opensignalboxをくっつけたもの。
 +--だからこれ一つでlib_initもlib_opensignalboxも不要。
 +--これはmallocしないので、malloc領域の計算で数えなくてよい。
 +--lib_getsig系を使うにはこの関数でシグナルボックスを初期化するか、もしくは特定の書式でシグナルボックス構造体を構成する必要がある。
 +--従来どおりユーザが自作したgetsignal等を使うのなら、この関数を使う必要もシグナルボックス構造体を作る必要もない。
 +--シグナルボックスのサイズに応じて関数名にバリエーションがある。どれか一つを選ぶ(将来的には1k版と16k版も作る予定)。
 +--lib_initsignalbox0_256(int rewind);
 +--lib_initsignalbox0_4k(int rewind);
 +--lib_initsignalbox0_64k(int rewind);
 +-lib_getsig系
 +--末尾にwが付いているのは、シグナルがくるまで待ってくれる関数である。相当の動作は以下を参照。w版では、関数値が0になることはない。
 +--lib_getsig0(int *sigbox);
 +--lib_getsig0w(int *sigbox);
 +--lib_getsig1(int *sigbox);
 +--lib_getsig1w(int *sigbox);
 +--0版と1版の違いは、次の通り。
 +---ノーマル版とw版のどちらかしか使わないのなら、0版を使うほうが高速かつコンパクト(ほとんどのプログラムはこちらに該当)。
 +---ノーマル版とw版の両方を使うなら、1版を使うほうが高速かつコンパクト。
 +-w版の動作説明用ソース
 + int getsignalw()
 + {
 +     int sig;
 + retry:
 +     sig = getsignal();
 +     if (sig == 0) {
 +         lib_waitsignal(0x0001, 0, 0); /* シグナルがくるまでsleep */
 +         goto retry;
 +     }
 +     return sig;
 + }
 +
 +* 使用例
 +
 +* こめんと欄
 +#comment

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。