|
|
1.1 ! root 1: .TH PIPE 3 ! 2: .SH NAME ! 3: pipe \- two-way interprocess communication ! 4: .SH SYNOPSIS ! 5: .B bind #| ! 6: .I dir ! 7: .nf ! 8: ! 9: .IB dir /data ! 10: .IB dir /ctl ! 11: .IB dir /data1 ! 12: .IB dir /ctl1 ! 13: .fi ! 14: .SH DESCRIPTION ! 15: .PP ! 16: An ! 17: .IR attach (5) ! 18: of this device allocates two new streams joined at the ! 19: device end. ! 20: .B X/data ! 21: and ! 22: .B x/ctl ! 23: are the data and control channels of one stream and ! 24: .B x/data1 ! 25: and ! 26: .B x/ctl1 ! 27: are the data and control channels of the other stream. ! 28: .PP ! 29: Data written to one channel becomes available for reading at ! 30: the other. ! 31: Write boundaries are preserved: each read terminates ! 32: when the read buffer is full or after reading the last byte ! 33: of a write, whichever comes first. ! 34: .PP ! 35: Written data is buffered in kernel stream blocks. ! 36: The writer will block once the stream is full, typically after ! 37: 32768 bytes or 16 writes. ! 38: The writer will resume once the stream is less than ! 39: half full. ! 40: .PP ! 41: If there are multiple writers, each ! 42: .I write ! 43: is guaranteed to be available in a contiguous piece at the other ! 44: end of the pipe. ! 45: If there are multiple readers, each read will return data from only ! 46: one write. ! 47: .PP ! 48: The ! 49: .IR pipe (2) ! 50: system call performs an ! 51: .I attach ! 52: of this device and returns file descriptors to the new pipe's ! 53: .B data ! 54: and ! 55: .B data1 ! 56: files. ! 57: The files are open with mode ! 58: .BR ORDWR . ! 59: .SH "SEE ALSO" ! 60: .IR pipe (2) ! 61: .SH SOURCE ! 62: .B /sys/src/9/port/devpipe.c
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.