Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (plan9)
Apropos / Subsearch:
optional field

STREAM(3)                  Library Functions Manual                  STREAM(3)

       stream - a structure for communications

       bind streamdevice dir


       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.

       pipe(3), dk(3), cons(3), async(3), fcall(3), ip(3), reboot(3)