Paul S. Wang mentioned another facility in his Introduction to ANSI C on UNIX (ISBN: 0-534-14232-X) there about page 370.
>> A pipe is a direct (in memory) I/O channel between processes.
>> The pipe can be thought of as a first-in-first-out character buffer (Figure 12.3) with
>> a read descriptor pointing to one end and a write descriptor pointing to
>> the other end.
>> To establish a pipe, use the system call
>> to obtain a buffer and two descriptors...
>> int pipe(int fildes)
I believe that the operating system (Linux specifically) will report that there is a pipe (I think it calls it a message queue these days) via the ipcs command. Wang's usage involves using fork to generate multiple processes and applying the pipe so that they may communicate directly. Here is a code fragment which he suggested:
He gets more elaborate latter using pairs of pipes so that the children can communicate bi-directionally with the parent process.
pipe(fildes); /* establish message queue with operating system */
if( fork() == 0 )
close(fildes); /* child reads fildes */
close(filedes); /* parent writes fildes */