|
|
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.