POSIX defines a set of nonblocking message-passing facilities known as message queues. Like pipes, message queues are named objects that operate with "readers" and "writers." As a priority queue of discrete messages, a message queue has more structure than a pipe and offers applications more control over communications.
For more information about these implementations, see the Utilities Reference.
Unlike our inherent message-passing primitives, the POSIX message queues reside outside the kernel.