14.3. UNIX pipes

We have seen that access to normal files is too slow for them to be used as a general mechanism for inter-process communication. The pipe in UNIX is designed to be used like a file but implemented to allow more efficient transfer of information between two processes. When a file is opened by a process a small integer file identifier is returned by the system for subsequent use when reading or writing the file. For example:

file-id =open (filename, access required)
[bytes] = read (file-id, byte-range-within-file)
 write (file-id, number and location in memory of bytes to write to file, where to write bytes in file)

A pipe is created by a special system call, but a normal file identifier is returned to the creating process. This ...

Get Operating Systems: Concurrent and Distributed Software Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.