[gambit-list] byte operations on ports
Christian
christian at pflanze.mine.nu
Mon Jun 13 12:19:31 EDT 2005
Hello
I can't find out how to read bytes from a device file:
> (define urandom-port (open-input-file "/dev/urandom"))
> urandom-port
#<input-port #2 "/dev/urandom">
> (read-byte urandom-port)
*** ERROR IN ##read-byte -- Invalid argument
(read-char '#<input-port #2 "/dev/urandom">)
1>
btw note that the error message mentions read-char instead of read-byte
> (read-char urandom-port)
*** ERROR IN (console)@5.1 -- Invalid argument
(read-char '#<input-port #2 "/dev/urandom">)
1>
> (input-port-byte-position urandom-port)
*** ERROR IN (console)@6.1 -- Unknown error
(input-port-byte-position '#<input-port #2 "/dev/urandom">)
1>
whereas with a normal file:
> (define urandom-port (open-input-file "chj.scm"))
> urandom-port
#<input-port #3 "/home/chris/schemedevelopment/gambit/chj.scm">
> (read-byte urandom-port)
10
> (read-char urandom-port)
#\(
> (input-port-byte-position urandom-port)
0
> (read-byte urandom-port)
100
> (input-port-byte-position urandom-port)
0
> (read-byte urandom-port)
101
> (input-port-byte-position urandom-port)
0
(but isn't it strange that input-port-byte-position doesn't advance?)
Thanks for your help
Christian.
More information about the Gambit-list
mailing list