[Openmcl-devel] Closing a stream with :abort
Gary Byers
gb at clozure.com
Wed Feb 27 16:08:14 PST 2008
If a file's OPENed with :IF-EXISTS :SUPERSEDE, its previous contents
are restored if it's CLOSEd with :ABORT true:
? (delete-file "home:content")
T
? (with-open-file (f "home:content" :direction :output :if-does-not-exist :create)
(write-line "This content should either be overwritten or preserved" f))
"This content should either be overwritten or preserved"
? (with-open-file (f "home:content" :direction :output :if-does-not-exist :create :if-exists :supersede)
(write-line "new content" f)
(force-output f)
(close f :abort t))
T
I think you're right that if the file was created by OPEN, closing
it with :ABORT true should try to delete it (and that doesn't happen).
I'll try to fix that soon.
On Wed, 27 Feb 2008, Osei Poku wrote:
> Hi,
>
> What is the standard behavior when closing a file stream with :abort
> set to T?
>
> Am I interpreting the hyperspec incorrectly when it states:
>
> "If abort is true, an attempt is made to clean up any side effects of
> having created stream. If stream performs output to a file that was
> created when the stream was created, the file is deleted and any
> previously existing file is not superseded."
>
> Clozure CL seems to leave the file completely intact.
>
> Osei
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
>
>
More information about the Openmcl-devel
mailing list