msgsnd man page on PC-BSD

Man page or keyword search:  
man Server   9747 pages
apropos Keyword Search (all sections)
Output format
PC-BSD logo
[printable version]

MSGSND(2)		    BSD System Calls Manual		     MSGSND(2)

NAME
     msgsnd — send a message to a message queue

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <sys/types.h>
     #include <sys/ipc.h>
     #include <sys/msg.h>

     int
     msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);

DESCRIPTION
     The msgsnd() function sends a message to the message queue specified in
     msqid.  The msgp argument points to a structure containing the message.
     This structure should consist of the following members:

	 long mtype;	/* message type */
	 char mtext[1]; /* body of message */

     mtype is an integer greater than 0 that can be used for selecting mes‐
     sages (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:

     ·	 The condition which caused the call to block does no longer exist.
	 The message will be sent.

     ·	 The message queue is removed, in which case -1 will be returned, and
	 errno is set to EINVAL.

     ·	 The caller catches a signal.  The call returns with errno set to
	 EINTR.

     After a successful call, the data structure associated with the message
     queue is updated in the following way:

     ·	 msg_cbytes is incremented by the size of the message.

     ·	 msg_qnum is incremented by 1.

     ·	 msg_lspid is set to the pid of the calling process.

     ·	 msg_stime is set to the current time.

RETURN VALUES
     The msgsnd() function returns the value 0 if successful; otherwise the
     value -1 is returned and the global variable errno is set to indicate the
     error.

ERRORS
     The msgsnd() function will fail if:

     [EINVAL]		The msqid argument is not a valid message queue iden‐
			tifier

			The message queue was removed while msgsnd() was wait‐
			ing 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.

HISTORY
     Message queues appeared in the first release of AT&T Unix System V.

BUGS
     NetBSD and FreeBSD do not define the EIDRM error value, which should be
     used in the case of a removed message queue.

BSD				 July 9, 2009				   BSD
[top]

List of man pages available for PC-BSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net