[Gauche-devel-jp] テンポラリファイルのseek

Back to archive index

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を修正して頂けるとうれしいです。

大和




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