O'Reilly logo

Understanding the Linux Kernel, 3rd Edition by Marco Cesati, Daniel P. Bovet

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

POSIX Message Queues

The POSIX standard (IEEE Std 1003.1-2001) defines an IPC mechanism based on message queues, which is usually known as POSIX message queues . They are much like the System V IPC's message queues already examined in the section "IPC Messages" earlier in this chapter. However, POSIX message queues sport a number of advantages over the older queues:

  • A much simpler file-based interface to the applications

  • Native support for message priorities (the priority ultimately determines the position of the message in the queue)

  • Native support for asynchronous notification of message arrivals, either by means of signals or thread creation

  • Timeouts for blocking send and receive operations

POSIX message queues are handled by means of a set of library functions, which are shown in Table 19-15.

Table 19-15. Library functions for POSIX message queues

Function names

Description

mq_open( )

Open (optionally creating) a POSIX message queue

mq_close( )

Close a POSIX message queue (without destroying it)

mq_unlink( )

Destroy a POSIX message queue

mq_send( ) ,

mq_timedsend( )

Send a message to a POSIX message queue; the latter function defines a time limit for the operation

mq_receive( ) ,

mq_timedreceive( )

Fetch a message from a POSIX message queue; the latter function defines a time limit for the operation

mq_notify( )

Establish an asynchronous notification mechanism for the arrival of messages in an empty POSIX message queue

mq_getattr( ) ,

mq_setattr( )

Respectively ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required