[Gauche-devel-jp] Re: Gauche-cairo 0.0.0

Back to archive index

Shiro Kawai shiro****@lava*****
2004年 9月 13日 (月) 19:45:52 JST


From: Shiro Kawai <shiro****@lava*****>
Subject: [Gauche-devel-jp] Re: Gauche-cairo 0.0.0
Date: Mon, 13 Sep 2004 00:36:44 -1000 (HST)

> > * FILE構造体のScheme側での扱い方
> 
> Scm_PortFileNo(ScmPort*) を使うと、portがファイルに
> 結びつけられている場合はそのファイルディスクリプタを得ることが
> できます (portが文字列ポート等の場合は-1が返ります)。
> それに対して fdopen(3) する、というのが順当な方法だと思います。
> Scheme側からは、portを渡すようにしておけば良いんじゃないでしょうか。

あ、この方法には重要な注意点があります。
ScmPortは自分自身でバッファリングを行っているので、Scheme側での
このportに対するI/OとFILE*レベルでのI/Oを混ぜて使うことは
出来ません。

(例外として、portのbuffering modeをnoneでopenした場合は、
Scheme側でportから何か読み込んだ後でC APIにそのportを
渡すことが出来ますが)。

バッファリングが別々である以上どうしようもないことなので、
ドキュメントで注意を呼びかけておくしかないと思います。

--shiro







Gauche-devel-jp メーリングリストの案内
Back to archive index