seek.lisp 505 B

1234567891011121314151617181920
  1. (in-package :hurd)
  2. (defcfun ("io_seek" %io-seek)
  3. err
  4. (file port)
  5. (offset loff-t)
  6. (whence seek-type)
  7. (newp :pointer))
  8. (defun io-seek (file &key (offset 1) (whence :seek-cur))
  9. "Seek the file pointer given the whence and offset semantics."
  10. (declare (type fixnum file)
  11. (type integer offset)
  12. (type symbol whence))
  13. (with-foreign-pointer (newp (foreign-type-size 'loff-t))
  14. (select-error (%io-seek file offset whence newp)
  15. (mem-ref newp 'loff-t))))