Main index | Section 2 | Options |
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
long mtype; /* message type */ char mtext[1]; /* body of message */
mtype is an integer greater than 0 that can be used for selecting messages (see msgrcv(2)), mtext is an array of msgsz bytes. The argument msgsz can range from 0 to a system-imposed maximum, MSGMAX.
If the number of bytes already on the message queue plus msgsz is bigger than the maximum number of bytes on the message queue ( msg_qbytes, see msgctl(2)), or the number of messages on all queues system-wide is already equal to the system limit, msgflg determines the action of msgsnd(). If msgflg has IPC_NOWAIT mask set in it, the call will return immediately. If msgflg does not have IPC_NOWAIT set in it, the call will block until:
After a successful call, the data structure associated with the message queue is updated in the following way:
[EINVAL] | |
The
msqid
argument
is not a valid message queue identifier.
The message queue was removed while msgsnd() was waiting for a resource to become available in order to deliver the message. The msgsz argument is greater than msg_qbytes. The mtype argument is not greater than 0. | |
[EACCES] | |
The calling process does not have write access to the message queue. | |
[EAGAIN] | |
There was no space for this message either on the queue, or in the whole system, and IPC_NOWAIT was set in msgflg. | |
[EFAULT] | |
The msgp argument points to an invalid address. | |
[EINTR] | |
The system call was interrupted by the delivery of a signal. | |
MSGSND (2) | July 9, 2009 |
Main index | Section 2 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
“ | One of the advantages of using UNIX to teach an operating systems course is the sources and documentation will easily fit into a student's briefcase. | ” |
— John Lions |