PIPE(3) 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 device end. X/data and x/ctl are the data and con- trol 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 termi- nates when the read buffer 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 multiple 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 Page 1 Plan 9 (printed 11/18/24)