Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ msgsnd(2) — DG/UX 5.4.2A

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

ipcrm(1)

ipcs(1)

msgctl(2)

msgget(2)

msgrcv(2)

signal(2)



msgsnd(2)                        DG/UX 5.4.2                       msgsnd(2)


NAME
       msgsnd - send a message

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

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

   where:
       msqid     A message queue identifier

       msgp      The message buffer of the message to be sent

       msgsz     The size in bytes of the mtext portion of the message
                 buffer

       msgflg    A set of flags modifying the action of msgsnd

DESCRIPTION
       Msgsnd sends a message to the queue associated with the message queue
       identifier specified by msqid.  msgp points to the user's message
       buffer containing first a field of type long integer that will
       specify the type of the message, and then the text of the message.
       msgsz is the length of the message.  It can range from 0 to a
       configurable system-imposed maximum.

       msgflg specifies the action to be taken if either the number of bytes
       already on the queue after this message is added would exceed the
       maximum queue size, or the total number of messages on all queues
       system-wide is equal to the system-imposed limit.  If either of these
       conditions hold, the following actions are taken:

       ⊕      If the IPC_NOWAIT bit of msgflg is set, the message will not
              be sent and the calling process will return immediately.

       ⊕      If the IPC_NOWAIT bit of msgflg is clear, the calling process
              will be suspended until:

              ⊕      the condition responsible for the suspension no longer
                     exists, in which case, the operation is successful,

              ⊕      msqid is removed from the system, in which case, msgsnd
                     will return with the error condition EIDRM, or

              ⊕      the calling process receives a signal that is to be
                     caught, in which case, msgsnd will return with the
                     error condition EINTR.




Licensed material--property of copyright holder(s)                         1




msgsnd(2)                        DG/UX 5.4.2                       msgsnd(2)


       If msgsnd fails, no message is sent and the message queue is
       unchanged.  Upon successful completion, the message queue attributes
       are changed as follows:

       ⊕      The number of messages on the queue (msg_qnum) is incremented.

       ⊕      The number of bytes on the queue (msg_cbytes) is increased by
              the size of the mtext portion of the message being sent.

       ⊕      The process id of the last process performing a msgsnd
              operation (msg_lspid) is set to the calling process.

       ⊕      The most recent time a msgsnd operation was performed
              (msg_stime) is set to the current time.

ACCESS CONTROL
       Write access to the message queue is required.

RETURN VALUE
       0      Completed successfully.

       -1     An error occurred.  errno is set to indicate the error.

DIAGNOSTICS
       Errno may be set to one of the following error codes:

       EINVAL    msqid is not a valid message queue identifier.

       EINVAL    Message type is less than 1.

       EINVAL    msgsz is less than zero or greater than the system-imposed
                 limit.

       EACCES    Write permission is denied to the calling process.

       EAGAIN    The message cannot be sent for some reason and the
                 IPC_NOWAIT bit of msgflg is set.

       EFAULT    msgp is an illegal address.

       EIDRM     msqid was removed from the system while the calling process
                 was suspended by msgsnd.

       EINTR     The calling process received a signal that was set to be
                 caught while suspended by msgsnd.

SEE ALSO
       intro(2), ipcrm(1), ipcs(1), msgctl(2), msgget(2), msgrcv(2),
       signal(2).








Licensed material--property of copyright holder(s)                         2


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026