Kawai Shiro
pract****@yahoo*****
2004年 7月 3日 (土) 10:22:20 JST
--- shelarcy <shela****@capel*****> からのメッセージ: > >> 1. gosh -q foo.scm は動く? > >> 2. gosh -q < foo.scm は動く? > >> 3. gosh -q -i としたらプロンプトは出る? > >> > >> それぞれのテストがどの問題を切り分けてるかは宿題ということで :-) > > > > どれもうまくいきません。 > > 1.、2. 何も表示されません。3. 反応を返さなくなる。そんな感じです。 > > gosh -q bar.scm と、ないファイル名を指定しても何も表示されませんでした。 どうも私が思っていたより前の段階で引っかかってるっぽいです。上記のテストは 入力で引っかかってるのかと思い、入力先を変えてみるものだったんですが。 「何も表示されません」といううのは、何も表示せずにプログラムが終了するという ことですか。それともgoshは実行を続けてて、Ctrl-Cかなんかで中断しなければ ならないということですか。 もし前者だとすれば、出力系を疑います。後者だとすれば、入力系かloadですね。 これ以上の確認は、今あるmain.cのかわりにそれぞれの機能をテストするmain.cを 書いて実行してみることで行います。 (1) 出力系だけのテスト。たとえば: int main(int argc, char **argv) { Scm_Init(GAUCHE_SIGNATURE); Scm_Printf(SCM_CUERR, "hello, world\n"); Scm_Exit(0); } これで何も表示されなければ、出力ポート系がおかしい。 (2) 入力系と出力系のテスト。Scm_Read()で読んだのを表示してみる。 (3) 入力、評価、出力系のテスト。Scm_Read()で読んだのをScm_Eval()して 結果を表示してみる。 と、まあ、こんな感じで段階を踏んでいきます。 -- shiro __________________________________________________ Do You Yahoo!? http://bb.yahoo.co.jp/