当使用流的读字节时,我正在阅读什么样的字节

时间:2015-10-13 08:32:24

标签: stream common-lisp

如果我理解正确的话,在有许多不同的架构对字节大小有不同看法的时候,常见的lisp是标准化的。为此,常见的lisp允许我们定义一个字节的大小。

例如,我可以像这样创建一个8位字节的数组:

(make-array 10 :element-type '(unsigned-byte 8))

这很有效,到目前为止,这些知识已经足够我所做的一切。

今天虽然我已经开始使用二进制流,但read-byte功能让我感到困惑。

CLHS表示read-byte reads and returns one byte from stream.

但这是什么字节?默认平台字节?我可以用任何方式指定吗?

谢谢大家

2 个答案:

答案 0 :(得分:1)

无论您读取的流的元素类型是什么,都表示。

答案 1 :(得分:1)

例如OPEN有一个:element-type参数,它是实现定义的。您的Common Lisp实现有更多关于它的信息。正如评论中所述,(unsigned-byte 8)描述了一个流八位字节,恰好是大多数(全部?)实现中的字节大小。谢谢@Xach。

另请参阅flexi-streams,其make-external-formatbinary-types用于自定义二进制编码。