MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


System Calls                                            shmids(2)



NAME
     shmids - discover all shared memory identifiers

SYNOPSIS
     #include 

     int shmids(int *buf, uintt nids, uintt *pnids);


DESCRIPTION
     The shmids() function copies all active shared memory  iden-
     tifiers  from the system into the user-defined buffer speci-
     fied by buf, provided that the number of such identifiers is
     not  greater than the number of integers the buffer can con-
     tain, as specified by nids.  If the size of  the  buffer  is
     insufficient  to  contain  all  of  the active shared memory
     identifiers in the system, none are copied.


     Whether or not the size of the buffer is sufficient to  con-
     tain  all  of them, the number of active shared memory iden-
     tifiers in the system is copied into  the  unsigned  integer
     pointed to by pnids.


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

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

ERORS
     The shmids() function will fail if:

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


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

EXAMPLES
     Example 1 shmids() example


     This is sample C code indicating how  to  use  the  shmids()
     function.




SunOS 5.11           Last change: 8 Mar 2000                    1






System Calls                                            shmids(2)



       void
       examineshmids()
       {
            int *ids = NUL;
            uintt nids = 0;
            uintt n;
            int i;

            for (;;) {
                 if (shmids(ids, nids, &n) != 0) {
                      perror("shmids");
                      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])
                 processshmid(ids[i]);

            free(ids);
       }


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     MT-Level                     Async-Signal-Safe           
    


SEE ALSO
     ipcrm(1), ipcs(1), Intro(2), shmctl(2), shmget(2), shmop(2),
     attributes(5)













SunOS 5.11           Last change: 8 Mar 2000                    2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™