Under 21.3.5. Bulk Input and Output
Rationale. The rationale for EXT:READ-CHAR-SEQUENCE, EXT:READ-BYTE-SEQUENCE,
EXT:WRITE-CHAR-SEQUENCE and EXT:WRITE-BYTE-SEQUENCE is that some STREAMs
support both character and binary i/o, and when you read into a SEQUENCE
that can hold both (e.g., LIST or SIMPLE-VECTOR) you cannot determine which
kind of input to use. In such situation READ-SEQUENCE and WRITE-SEQUENCE
SIGNAL an ERROR, while EXT:READ-CHAR-SEQUENCE, EXT:READ-BYTE-SEQUENCE,
EXT:WRITE-CHAR-SEQUENCE and EXT:WRITE-BYTE-SEQUENCE work just fine.
This appears not to be the case. Read-sequence, as I expected, works
fine and (naturally) stores the element type of the stream.
Unless these are much faster than read/write-sequence, I think the
real benefit is the no-hang argument of read-byte-sequence.
I've now tried it and I'm happy with the result.
Now for write-byte-sequence :nohang ...