This is a read-only archive of lispforum.com. The forum was locked to new users and posts and is preserved here as static HTML from a database snapshot taken on 2019-09-07.

write to a non existing file

2 posts · 5643 views

I have written a version to write to an existing file:
;; write to an existing file

(define write-to-a-file
  (lambda (path txt)
    (call-with-output-file path
      (lambda (output-port)
        (write txt output-port)))))
I want to implement a version that checks if the file exists then the text is added to the file without deleting the previous content. If it does not exist then it should just create it and write text to it.
I 'm writting in chicken scheme. I have chicken wiki and the api page but the just mention the commands without some simple examples to get you started. :(
Any ideas?

Re: write to a non existing file

The behavior you describe is often phrased something as "open the file in append mode". Other flags are sometimes needed.
For example, in CL the call is "(open filename :if-exists :append :if-does-not-exist :create)".
In C, the call is "open(filename, O_APPEND|O_CREAT)".
The following page shows the options for several scheme implementations. http://practical-scheme.net/wiliki/sche ... utput-file