glenda.party
term% ls -F
term% cat index.txt
PIPE(3)                    Library Functions Manual                    PIPE(3)



NAME
       pipe - two-way interprocess communication

SYNOPSIS
       bind #| dir

       dir/data
       dir/ctl
       dir/data1
       dir/ctl1

DESCRIPTION
       An attach(5) of this device allocates two new streams joined at the de‐
       vice end.  X/data and x/ctl are the data and control  channels  of  one
       stream  and x/data1 and x/ctl1 are the data and control channels of the
       other stream.

       Data written to one channel becomes available for reading at the other.
       Write boundaries are preserved: each read terminates when the read buf‐
       fer is full or after reading the last byte of a write, whichever  comes
       first.

       Written  data  is  buffered  in  kernel stream blocks.  The writer will
       block once the stream is  full,  typically  after  32768  bytes  or  16
       writes.  The writer will resume once the stream is less than half full.

       If there are multiple writers, each write is guaranteed to be available
       in a contiguous piece at the other end of the pipe.  If there are  mul‐
       tiple readers, each read will return data from only one write.

       The  pipe(2)  system call performs an attach of this device and returns
       file descriptors to the new pipe's data and data1 files.  The files are
       open with mode ORDWR.

SEE ALSO
       pipe(2)

SOURCE
       /sys/src/9/port/devpipe.c



                                                                       PIPE(3)