消息块
STREAMS 消息由一个或多个链接的消息块组成。 即,消息的第一个消息块可以附加到属于同一消息的其他消息块。
例如,由于处理将头或尾数据添加到消息中包含的数据,或者由于消息缓冲区中的大小限制导致数据跨多个块,可能会发生消息中的多个块。 当消息由多个消息块组成时,第一个块的消息类型确定整个消息的类型,而不考虑附加消息块的类型。
STREAMS 将消息作为包含特定大小的缓冲区的单个块进行分配。 如果消息的数据超过包含数据的缓冲区的大小,那么该过程可以分配包含更大缓冲区的新块,将当前数据复制到该块,插入新数据,然后取消分配旧块。 或者,该过程可以分配额外的 (较小的) 块,将新数据放入新消息块中,并在初始消息块之后或之前将其链接。 两种替代方法都产生一条新消息。
当过程处理消息时,消息可以独立存在。 或者,消息可以在 QUEUE 中的消息链接列表 (称为 消息队列) 上等待处理。 在 "消息队列" 图 (图 1) 中,消息 1 链接到消息 2。

当消息排队时,消息的第一个块除了包含指向消息的第二个块 (如果存在) 的链接外,还包含指向同一消息队列上的前消息和后消息的链接。 消息队列头和尾部包含在 QUEUE 中。
STREAMS 实用程序例程使开发者能够处理消息和消息队列。