term% cat index.txt STREAM(3) Library Functions Manual 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 communications channels. The prop‐
erties 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 opera‐
tions on the stream. The strings need not be null-terminated. Each
device may add to the control operations. The common control opera‐
tions 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 par‐
ticular device.
SEE ALSO
pipe(3), dk(3), cons(3), async(3), fcall(3), ip(3), reboot(3)
SOURCE
/sys/src/9/port/st*.c
STREAM(3)