Masatake YAMATO
yamat****@redha*****
2010年 5月 13日 (木) 19:14:34 JST
テンポラリファイルのportに対するport-tellが効きません。 以下のテストで cannot-seekとなります。 ;; system.scm (test* "sys-mkstemp" 'can-seek (receive (oport name) (sys-mkstemp "gauche-self-utest") (sys-unlink name) (if (port-tell oport) 'can-seek 'cannot-seek))) sys-mkstempが使っているScm_MakePortWithFdにてseekerメソッドをNULLに設定 しているためのようです。Scm_OpenFilePortを使えば良いと考えたのですが 引数にpathを期待していてfdを渡せません。 Scm_MakePortWithFdとScm_OpenFilePortの共通処理を担当する関数Xを用意して Scm_MakePortWithFdとScm_OpenFilePortから使えば良さそうです。 sys-mkstempの返すファイル名でopen-output-fileし直せば回避できますが、 sys-mkstempを修正して頂けるとうれしいです。 大和