OpenSolaris 2009.06 - man page for msgids (opensolaris section 2)

Linux & Unix Commands - Search Man Pages

Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


msgids(2)				   System Calls 				msgids(2)

NAME
       msgids - discover all message queue identifiers

SYNOPSIS
       #include <sys/msg.h>

       int msgids(int *buf, uint_t nids, uint_t  *pnids);

DESCRIPTION
       The msgids() function copies all active message queue identifiers from the system into the
       user-defined buffer specified by buf, provided that the number of such identifiers is  not
       greater	than the number of integers the buffer can contain, as specified by nids.  If the
       size of the buffer is insufficient to contain all of the active message queue  identifiers
       in the system, none are copied.

       Whether	or not the size of the buffer is sufficient to contain all of them, the number of
       active message queue identifiers in the system is copied into the unsigned integer pointed
       to by pnids.

       If  nids  is  0 or less than the number of active message queue identifiers in the system,
       buf is ignored.

RETURN VALUES
       Upon successful completion, msgids() returns 0.	Otherwise, -1 is returned  and	errno  is
       set to indicate the error.

ERRORS
       The msgids() function will fail if:

       EFAULT	 The buf or pnids argument points to an illegal address.

USAGE
       The  msgids()  function	returns a snapshot of all the active message queue identifiers in
       the system.  More may be added and some may be removed before they  can	be  used  by  the
       caller.

EXAMPLES
       Example 1 msgids() example

       This is sample C code indicating how to use the msgids() function (see msgsnap(2)):

	 void
	 examine_queues()
	 {
	      int *ids = NULL;
	      uint_t nids = 0;
	      uint_t n;
	      int i;

	      for (;;) {
		   if (msgids(ids, nids, &n) != 0) {
			perror("msgids");
			exit(1);
		   }
		   if (n <= nids)     /* we got them all */
			break;
		   /* we need a bigger buffer */
		   ids = realloc(ids, (nids = n) * sizeof (int));
	      }

	      for (i = 0; i < n; i++)
		   process_msgid(ids[i]);

	      free(ids);
	 }

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |Async-Signal-Safe 	   |
       +-----------------------------+-----------------------------+

SEE ALSO
       ipcrm(1),  ipcs(1),  Intro(2),  msgctl(2),  msgget(2),  msgsnap(2),  msgrcv(2), msgsnd(2),
       attributes(5)

SunOS 5.11				    8 Mar 2000					msgids(2)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 08:38 AM.

Unix & Linux Forums Content Copyright©1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password





Not a Forum Member?
Forgot Password?