Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

msgget(2) [hpux man page]

msgget(2)							System Calls Manual							 msgget(2)

NAME
msgget - get message queue SYNOPSIS
DESCRIPTION
returns the message queue identifier associated with key. A message queue identifier and associated message queue and data structure are created for key if one of the following is true: key is equal to This call creates a new identifier, subject to available resources. The identifier will never be returned by another call to until it has been released by a call to The identifier should be used among the calling process and its descendents; however, it is not a requirement. The resource can be accessed by any process having the proper permissions. key does not already have a message queue identifier associated with it, and (msgflg is "true". On creation of a new queue, queue sizes above 64Kbytes can only be constructed when the application is compiled with the flag defined either explicitly with a in the source or with at compile time. WARNING: Programs compiled on HP-UX revisions prior to 11i Version 1 use old 16-bit structure fields (obtained via of the system call) which can describe queue sizes only up to 64KBytes. Care must be taken such that queues shared with such programs are not made larger than 64KBytes (i.e., that is not specified when compiling the caller of Or, those existing programs should be recom- piled. Or, the system administrator should restrict the kernel tunable parameter to 64KBytes or less. Upon creation, the data structure associated with the new message queue identifier is initialized as follows: and are set equal to the effective user ID and effective group ID, respectively, of the calling process. The low-order 9 bits of are set equal to the low-order 9 bits of msgflg. and are set equal to 0. is set equal to the current time. is set equal to the system limit. Security Restrictions Some or all of the actions associated with this system call are subject to compartmental restrictions. See compartments(5) for more infor- mation about compartmentalization on systems that support that feature. Compartmental restrictions can be overridden if the process possesses the privilege (PRIV_COMMALLOWED). Processes owned by the superuser may not have this privilege. Processes owned by any user may have this privilege, depending on system configuration. See privileges(5) for more information about privileged access on systems that support fine-grained privileges. RETURN VALUE
Upon successful completion, a non-negative integer, namely a message queue identifier, is returned. Otherwise, a value of -1 is returned and is set to indicate the error. ERRORS
fails if one or more of the following is true: A message queue identifier exists for key, but operation permission as specified by the low-order 9 bits of msgflg would not be granted. A message queue identifier does not exist for key and (msgflg is "false". A message queue identifier is to be created but the system-imposed limit on the maximum number of allowed message queue identifiers system wide would be exceeded. A message queue identifier exists for key but ((msgflg & && (msgflg & is "true". SEE ALSO
ipcrm(1), ipcs(1), msgctl(2), msgop(2), stdipc(3C), privileges(5). STANDARDS CONFORMANCE
msgget(2)

Check Out this Related Man Page

msgget(2)							System Calls Manual							 msgget(2)

Name
       msgget - get message queue

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

       int msgget (key, msgflg)
       key_t key;
       int msgflg;

Description
       The system call returns the message queue identifier associated with key.

       A message queue identifier and associated message queue and data structure are created for key if one of the following is true:

       o    The key is equal to IPC_PRIVATE

       o    The  key  does not already have a message queue identifier associated with it, and (msgflg & IPC_CREAT) is true.  For further informa-
	    tion, see

       Upon creation, the data structure associated with the new message queue identifier is initialized as follows:

       o    The msg_perm.cuid, msg_perm.uid, msg_perm.cgid and msg_perm.gid members are set equal to the effective user ID and effective group ID,
	    respectively, of the calling process.

       o    The low-order nine bits of msg_perm.mode are set equal to the low-order nine bits of msgflg.

       o    The msg_qnum, msg_lspid, msg_lrpid, msg_stime, and mgs_rtime members are set equal to 0.

       o    The msg_ctime is set equal to the current time.

       o    The msg_qbytes is set equal to the system limit.

Return Values
       Upon  successful  completion,  a  non-negative  integer,  which	is  a  message queue identifier, is returned.  Otherwise, a value of -1 is
       returned, and errno is set to indicate the error.

Diagnostics
       The system call fails under the following conditions:

       [EACCES]       A message queue identifier exists for key but operations permission, as specified by the	low-order  nine  bits  of  msgflg,
		      would not be granted.  For further information, see

       [ENOENT]       A message queue identifier does not exist for key and the logical operation (msgflg & IPC_CREAT) is false.

       [ENOSPC]       A  message  queue  identifier  is to be created, but the system-imposed limit on the maximum number of allowed message queue
		      identifiers system wide would be exceeded.

       [EEXIST]       A message queue identifier exists for key but the logical operation ((msgflg & IPC_CREAT ) & (msgflg & IPC_EXCL )) is true.

See Also
       msgctl(2), msgop(2), ftok(3)

																	 msgget(2)
Man Page