[Openmcl-devel] File-length bug?
Ron Garret
ron at flownet.com
Sat Aug 3 10:53:29 PDT 2013
? (setf path #P"~/Desktop/foo")
#P"/Users/ron/Desktop/foo"
? (setf out (open path :direction :output :if-does-not-exist :create))
#<BASIC-FILE-CHARACTER-OUTPUT-STREAM ("/Users/ron/Desktop/foo"/20 UTF-8) #x3020025DEA2D>
? (setf in (open path :direction :input))
#<BASIC-FILE-CHARACTER-INPUT-STREAM ("/Users/ron/Desktop/foo"/21 UTF-8) #x3020025DD7DD>
? (file-length in)
0 ; As expected
? (listen in)
T ; Not as expected, but OK, using listen on file streams is a little hinky...
? (print 123 out)
123
? (force-output out)
NIL
? (file-length out)
5 ; As expected
? (file-length in)
0 ; Not as expected
? (file-position in 3)
3
? (file-position in)
3
? (file-length in)
0
Is this a bug?
FYI, what I'm actually trying to do is to use a file as a FIFO, with one process writing the file and another reading it (which is why I can't use an :io stream). Ideally what I'd like to do is have the reader block when trying to read past the end of the file (like "tail -f"), but a reliable way of polling to see if additional data has been written would be enough. It's a binary file, so I can't use peek-char. (I could use flexi-streams:peek-byte but I was hoping to avoid adding a library dependency.)
Thanks,
rg
More information about the Openmcl-devel
mailing list