我尝试做
(define o (open-output-file "txt.txt"))
(write "hope" o)
(close-output-port o)
它第一次工作,然后它说
open-output-file: file exists
path: C:\...\proj3\txt.txt
并拒绝再写它。我检查了权限,但事实并非如此。 我甚至冲进我的学校系统,它给出了“未指定的返回值”错误 当我第二次尝试打开文件时。
任何帮助都可能会增加我的生活年限,这会加剧。
答案 0 :(得分:1)
标准方案,至少来自R5RS,定义call-with-{input,output}-file
和with-{input,output}-from-file
。这些确保为非本地出口正确关闭所创建的端口,并在保留延续时正确打开(保持打开)。
对于您现有的文件,标准化程度较低。在R5RS中,当文件存在时打开文件以进行输出时的行为是“未指定”,并且没有delete-file
甚至file-exists?
的标准函数。大多数R5RS方案提供了一种删除文件的非标准方法。在R7RS中,您可以找到这两个功能。
[编辑理由=“删除代码以回应第一条评论”]