pipe => read-descriptor, write-descriptor, error
read-descriptor -- A fixnum.
write-descriptor -- A fixnum.
error -- A fixnum.
pipe creates a pipe, a unidirectional data channel that can be used for interprocess communication. The first two return values each contains a file descriptor. The first return value refers to the read end of the pipe, and the second return value refers to the write end of the pipe. Data written to the write end of the pipe is buffered by the kernel until it is read from the read end of the pipe.
+emfile+ | The process already has the maximum number of file descriptors open and tried to open a new one. |
+enfile+ | The system limit on the total number of open files has been reached. |