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)