I've just tested with SBCL-1.0.29 and the problem is still there. But CMUCL 19d gives the right result : 4
And Duane Rettig told me that it also works with Allegro CL :
With SBCL-1.0.18, the file position is 5 after a call of the function read-vector with a simple array of one '(signed-byte 32).
I would expect 4.
Here is how to reproduce :
;;(asdf:operate 'asdf:load-op :sb-simple-streams)
(:use #:common-lisp #:sb-simple-streams))
(defun read-big-int (stream)
(let ((b (make-array 1 :element-type '(signed-byte 32) :initial-element 0)))
(declare (dynamic-extent b))
(sb-simple-streams::read-vector b stream :endian-swap :network-order)
(aref b 0)))
(with-open-file (stream "anyfile.txt"
(print (file-position stream))
(print (read-big-int stream))
(print (file-position stream)))