我正在尝试将文本流写入 Interlisp、Medley 中的文件。我已经到处搜索(网上和书本上)但找不到 Interlisp 中 I/O 流文件操作的可行命令。
感谢@ignis volens的回答,我找到了以下解决方案,但我仍然没有成功打印到文件,我使用的代码如下:
(SETQ S (OPENSTREAM 'output.TEDIT 'OUTPUT))
> <OUTPUT stream ...>
(PRIN1 'lalala S)
> lalala
(GETFILEINFO 'output.TEDIT 'PROTECTION)
> 33188
它没有报告错误,但文件“output.TEDIT”中没有任何内容,文本“lalala”没有按预期打印在文件中。 PROTECTION 返回一个字符串,这是什么意思?到目前为止我还没有找到任何答案。
我也尝试过这个:
(SETQ N (OPENFILE 'n.TEDIT 'OUTPUT))
> {DSK}...
(PRIN1 'lalala N)
> LITATOM 'streams' no longer supported
{DSK}...
我收到了 Larry Masinter 的以下回复:
问题是这些是缓冲流,并且没有写出字节的后台任务。因此,在您调用
lalala
或关闭流之前,您不会看到 (FLUWHOUTPUT S)
。