Stream 使用流时';s读字节我读的是什么类型的字节

Stream 使用流时';s读字节我读的是什么类型的字节,stream,common-lisp,Stream,Common Lisp,如果我理解正确的话,common lisp是在一个有许多不同体系结构对字节大小有不同意见的时代标准化的。为此,公共lisp允许我们定义字节的大小 例如,我可以创建一个8位字节的数组,如下所示: (生成数组10:元素类型(无符号字节8)) 这很有效,到目前为止,这些知识已经足够我做任何事情了 今天,虽然我开始使用二进制流,但是readbyte函数让我感到困惑 CLHS表示readbyte从流中读取并返回一个字节。 但是这是什么类型的字节呢?默认平台字节?我可以以任何方式指定这一点吗 感谢各位。这是

如果我理解正确的话,common lisp是在一个有许多不同体系结构对字节大小有不同意见的时代标准化的。为此,公共lisp允许我们定义字节的大小

例如,我可以创建一个8位字节的数组,如下所示:

(生成数组10:元素类型(无符号字节8))

这很有效,到目前为止,这些知识已经足够我做任何事情了

今天,虽然我开始使用二进制流,但是
readbyte
函数让我感到困惑

CLHS
表示
readbyte从流中读取并返回一个字节。

但是这是什么类型的字节呢?默认平台字节?我可以以任何方式指定这一点吗


感谢各位。

这是您从中读取的流的元素类型指示的任何内容。

例如,有一个
:element type
参数,该参数是实现定义的。您的通用Lisp实现有更多关于它的信息。正如评论中所说,
(无符号字节8)
描述了一个流八位字节,它恰好是大多数(所有?)实现中字节的大小。谢谢@Xach


另请参见具有
生成外部格式的文件和自定义二进制编码。

很好,我是从套接字库获取流的,所以我没有深入了解
:外部格式的用法。还感谢CLHS链接和
flexi streams
:外部格式仅与字符流相关:元素类型是二进制流的适用选项。实际上(无符号字节8)是获得事实上可移植二进制流的唯一合理选择;更小或更大的字节是以特定于实现的方式写入的,但是(无符号字节8)作为八位字节具有可预测的行为。@Xach谢谢,我很快阅读了页面,不知怎的将外部格式与元素类型混淆了。很好,我想这就是原因所在。谢谢