|
|
1.1 ! root 1: .th PIPE II 8/5/73 ! 2: .sh NAME ! 3: pipe \*- create a pipe ! 4: .sh SYNOPSIS ! 5: (pipe = 42.) ! 6: .br ! 7: .ft B ! 8: sys pipe ! 9: .br ! 10: .ft R ! 11: (read file descriptor in r0) ! 12: .br ! 13: (write file descriptor in r1) ! 14: .s3 ! 15: .ft B ! 16: pipe(fildes) ! 17: .br ! 18: int fildes[2]; ! 19: .ft R ! 20: .sh DESCRIPTION ! 21: The ! 22: .it pipe ! 23: system call ! 24: creates an I/O mechanism called a pipe. ! 25: The file descriptors returned can ! 26: be used in read and write operations. ! 27: When the pipe is written using the descriptor ! 28: returned in r1 (resp. fildes[1]), ! 29: up to 4096 bytes of data are buffered ! 30: before the writing process is suspended. ! 31: A read using the descriptor returned in r0 ! 32: (resp. fildes[0]) ! 33: will pick up the data. ! 34: .s3 ! 35: It is assumed that after the ! 36: pipe has been set up, ! 37: two (or more) ! 38: cooperating processes ! 39: (created by subsequent ! 40: .it fork ! 41: calls) ! 42: will pass data through the ! 43: pipe with ! 44: .it read ! 45: and ! 46: .it write ! 47: calls. ! 48: .s3 ! 49: The shell has a syntax ! 50: to set up a linear array of processes ! 51: connected by pipes. ! 52: .s3 ! 53: Read calls on an empty ! 54: pipe (no buffered data) with only one end ! 55: (all write file descriptors closed) ! 56: return an end-of-file. ! 57: Write calls under similar conditions are ignored. ! 58: .sh "SEE ALSO" ! 59: sh(I), read(II), write(II), fork(II) ! 60: .sh DIAGNOSTICS ! 61: The error ! 62: bit (c-bit) is set if ! 63: more than ! 64: 8 files are already open. ! 65: From C, a \*-1 returned value ! 66: indicates an error.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.