你如何在计划中提交i / o?

时间:2014-04-10 22:59:28

标签: scheme

我尝试做

(define o (open-output-file "txt.txt"))

(write "hope" o)

(close-output-port o)

它第一次工作,然后它说

open-output-file: file exists
  path: C:\...\proj3\txt.txt

并拒绝再写它。我检查了权限,但事实并非如此。 我甚至冲进我的学校系统,它给出了“未指定的返回值”错误 当我第二次尝试打开文件时。

任何帮助都可能会增加我的生活年限,这会加剧。

1 个答案:

答案 0 :(得分:1)

标准方案,至少来自R5RS,定义call-with-{input,output}-filewith-{input,output}-from-file。这些确保为非本地出口正确关闭所创建的端口,并在保留延续时正确打开(保持打开)。

对于您现有的文件,标准化程度较低。在R5RS中,当文件存在时打开文件以进行输出时的行为是“未指定”,并且没有delete-file甚至file-exists?的标准函数。大多数R5RS方案提供了一种删除文件的非标准方法。在R7RS中,您可以找到这两个功能。

[编辑理由=“删除代码以回应第一条评论”]