Common Lisp与读字节/写字节斗争

时间:2011-06-18 13:36:00

标签: stream byte common-lisp

我希望能够写入字节并从标准输入/输出中读取它们但是当我在SBCL中尝试这个时,我得到错误“流没有合适的方法[...]”,为什么会这样,怎么会我打算自己制作可以处理字节的流吗?

1 个答案:

答案 0 :(得分:4)

这似乎是因为标准输入和输出流是元素类型为character的流,而不是(unsigned-byte 8)。通常在流打开时配置流的元素类型,在标准输入/输出的情况下,在解释器启动时自动完成。

然而,SBCL具有二价流的概念,它可以支持字符和面向字节的I / O.碰巧,在我的机器上,

* (read-byte *standard-input* nil)
a

97
* (read-char *standard-input* nil)
a

#\a

工作正常。那么,您使用的是哪个版本的SBCL?我的是SBCL 1.0.49。