[OSASK 6027] BOARD: C ライブラリ

このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい
http://www.imasy.org/~mone/osask/index.cgi?REFER=3eaa7f60_7ea1

2003/04/26 21:45
Gaku

こんちは。Gaku です。

[OSASK 6024] へのレスです。

召還の呪文が唱えられたようなので、レスします。

#ファイル周りのライブラリ
Cライブラリのファイル周りは、インタプリタに必要で用意したやつです。
ファイル周りを書くのにかなりバグを出して苦労した記憶があります。

インタプリタに使用したのは、ページに置いてる normal版を改良したものです。
現在公開しているライブラリには [OSASK 3770] 辺りで議論された
「ファイルをスロットから剥がす」動作が反映されていなかった。と記憶しています。
もう少し整備をしてから公開しようと思っているうちに時間が立ってしまいました。
このライブラリは、finit という特別な関数を最初に呼ぶ必要があります。

それと、デバグは、インタプリタ用のライブラリに一番時間をかけました。
他のは、採用しなかったので、テストにも時間をかけていません。
バグはあると思います。
ついでにインタプリタの fseek, ftell もバグがあります。
正常に動作しないことがあります。(TODOに書いてあります)

#ここから本題です
ユーザが書くプログラム側でシグナル処理しつつ、ライブラリ側でもシグナル処理したいので、
シグナルボックスのアドレスを知らせるような仕組みとして、finit を用意しました。
しかし、このような関数を見せてしまうのは格好が良くないです。
だと main の前に何か細工をするべきで、コンパイラ環境に手を入れることになると思います。

このような、シグナルボックスのアドレスを知らせる方法の場合、ユーザ側とライブラリ側で
シグナルボックスをそれぞれ操作しても安全を確保できるか?が非常に気になるのです。
この操作の為に安全を確保する関数をライブラリに追加することは、
finit を隠したいくらいなので選択したくない選択肢という仮定とします。

例えば、シグナルボックスを別々に2つ用意できるなら、この場合は便利だと思ったりしました。
面倒そうだったので finit を使う方法でインタプリタ用のライブラリにしたのですが。
今すぐはやらないと思うのですが、インタプリタなどやるときはファイル周りを整備すると思います。
そのときまでに整備されてると楽で良いなぁ。と思ったりして。

それでは。また。



ML番号でジャンプ
ML単語検索