STREAM(3) STREAM(3)
NAME
stream - a structure for communications
SYNOPSIS
bind streamdevice dir
dir/data
dir/ctl
DESCRIPTION
A stream is not a device per se. However, many devices use
the streams package in the kernel to implement communica-
tions channels. The properties described here are common to
all such channels.
All streams are represented by two standard files, ctl and
data, plus any others the particular device wants to add.
Reading and writing the data file receives and sends data on
the channel. If the channel is message oriented, each write
will represent a message and each read will return at most
one message. If the buffer given in a read is smaller than
the message, subsequent reads will return the remainder of
the message.
Writing textual command strings to the ctl file performs
control operations on the stream. The strings need not be
null-terminated. Each device may add to the control opera-
tions. The common control operations are:
hangup Hang up this stream. Any subsequent writes
will return an error. The first subsequent
read will return 0. All following ones will
return an error.
push name Push the module name onto the top of the
stream.
pop Pop the top module off the stream
Reading the ctl file returns a textual identifier for the
stream. This is used by multiplexed devices and its use is
described with the particular device.
SEE ALSO
pipe(3), dk(3), cons(3), async(3), fcall(3), ip(3),
reboot(3)
SOURCE
/sys/src/9/port/st*.c
Page 1 Plan 9 (printed 10/30/25)