IPB
>  Man Pages > Unix > Solaris 10 11/06 > Section 2 > semctl man page

semctl man page

Section 2 - Solaris 10 11/06 Man Pages

Other operating system man pages available here


Advanced Search

Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!





System Calls                                            semctl(2)



NAME
     semctl - semaphore control operations

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

     int semctl(int semid, int semnum, int cmd, ...);

DESCRIPTION
     The semctl() function provides a variety of  semaphore  con-
     trol  operations as specified by cmd. The fourth argument is
     optional,  depending  upon  the  operation   requested.   If
     required,  it  is of type  union semun, which must be expli-
     citly declared by the application program.

     union semun {
             int             val;
             struct semid_ds *buf;
             ushort_t        *array;
     } arg ;


     The permission required for a semaphore operation  is  given
     as  {token},  where  token is the type of permission needed.
     The types of permission are interpreted as follows:

     00400    READ by user
     00200    ALTER by user
     00040    READ by group
     00020    ALTER by group
     00004    READ by others
     00002    ALTER by others


     See the Semaphore Operation Permissions  subsection  of  the
     DEFINITIONS  section  of  intro(2) for more information. The
     following semaphore operations as specified by cmd are  exe-
     cuted  with  respect to the semaphore specified by semid and
     semnum.

     GETVAL          Return the value of  semval (see  intro(2)).
                     {READ}



     SETVAL          Set the value of  semval to arg.val. {ALTER}
                     When  this command is successfully executed,
                     the semadj value corresponding to the speci-
                     fied semaphore in all processes is cleared.




SunOS 5.10           Last change: 1 Feb 2003                    1






System Calls                                            semctl(2)



     GETPID          Return the value of (int) sempid. {READ}



     GETNCNT         Return the value of semncnt. {READ}



     GETZCNT         Return the value of semzcnt. {READ}



     The following operations return and set, respectively, every
     semval in the set of semaphores.

     GETALL          Place  semvals  into  array  pointed  to  by
                     arg.array. {READ}



     SETALL          Set semvals according to the  array  pointed
                     to  by  arg.array. {ALTER}. When this cmd is
                     successfully  executed,  the  semadj  values
                     corresponding to each specified semaphore in
                     all processes are cleared.



     The following operations are also available.

     IPC_STAT        Place the current value of  each  member  of
                     the  data  structure  associated  with semid
                     into the structure pointed  to  by  arg.buf.
                     The  contents  of this structure are defined
                     in intro(2). {READ}



     IPC_SET         Set the value of the  following  members  of
                     the  data structure associated with semid to
                     the corresponding value found in the  struc-
                     ture pointed to by arg.buf:


                     sem_perm.uid
                     sem_perm.gid
                     sem_perm.mode  /* access permission bits only */

                     This command can be executed only by a  pro-
                     cess  that  has  either the {PRIV_IPC_OWNER}
                     privilege or an effective user ID  equal  to
                     the  value  of msg_perm.cuid or msg_perm.uid



SunOS 5.10           Last change: 1 Feb 2003                    2






System Calls                                            semctl(2)



                     in the data structure associated with msqid.
                     Only       a      process      with      the
                     {PRIV_SYS_IPC_CONFIG}  privilege  can  raise
                     the value of msg_qbytes.



     IPC_RMID        Remove the semaphore identifier specified by
                     semid from the system and destroy the set of
                     semaphores  and  data  structure  associated
                     with  it.  This command can be executed only
                     by a process that has  the  {PRIV_IPC_OWNER}
                     privilege  or  an effective user ID equal to
                     the value of sem_perm.cuid  or  sem_perm.uid
                     in the data structure associated with semid.



RETURN VALUES
     Upon successful completion, the value  returned  depends  on
     cmd as follows:

     GETVAL          the value of semval



     GETPID          the value of (int) sempid



     GETNCNT         the value of semncnt



     GETZCNT         the value of semzcnt



     All other successful completions return  0; otherwise, -1 is
     returned and errno is set to indicate the error.

ERRORS
     The semctl() function will fail if:

     EACCES          Operation permission is denied to  the  cal-
                     ling process (see intro(2)).



     EFAULT          The source or target is not a valid  address
                     in the user process.




SunOS 5.10           Last change: 1 Feb 2003                    3






System Calls                                            semctl(2)



     EINVAL          The semid argument is not a valid  semaphore
                     identifier; the semnum argument is less than
                     0 or greater than sem_nsems -1; or  the  cmd
                     argument  is  not  a  valid  command  or  is
                     IPC_SET and sem_perm.uid or sem_perm.gid  is
                     not valid.



     EPERM           The cmd argument is  equal  to  IPC_RMID  or
                     IPC_SET,  the  effective user ID of the cal-
                     ling process is not equal to  the  value  of
                     sem_perm.cuid  or  sem_perm.uid  in the data
                     structure   associated   with   semid,   and
                     {PRIV_IPC_OWNER}  is  not  asserted  in  the
                     effective set of the calling process.



     EOVERFLOW       The cmd argument is IPC_STAT and uid or  gid
                     is  too  large to be stored in the structure
                     pointed to by arg.buf.



     ERANGE          The cmd argument is SETVAL or SETALL and the
                     value  to  which  semval  is  to  be  set is
                     greater than the system imposed maximum.



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

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Interface Stability         | Standard                    |
    |_____________________________|_____________________________|


SEE ALSO
     ipcs(1),  intro(2),  semget(2),   semop(2),   attributes(5),
     privileges(5), standards(5)










SunOS 5.10           Last change: 1 Feb 2003                    4





Man(1) output converted with man2html and wrapped by fishsponge

This page was generated on Wed Sep 12 11:27:07 GMT 2007

Your favourite pages:

No pages logged yet.
Trying to save cookie...

Top 10 most popular pages:

sqlite3 man page (5323 hits)
(openSUSE 10.2)

svn man page (5181 hits)
(FreeBSD 6.2)

adv_cap_autoneg man page (4865 hits)
(Solaris 10 11_06)

CPAN man page (4602 hits)
(Suse Linux 10.1)

ssh man page (4337 hits)
(Suse Linux 10.1)

ssh-socks5-proxy-connect man page (2843 hits)
(Solaris 10 11_06)

netcat man page (2691 hits)
(Suse Linux 10.1)

pprosetup man page (2474 hits)
(Solaris 10 11_06)

startproc man page (2457 hits)
(Suse Linux 10.1)

signal man page (2395 hits)
(Suse Linux 10.1)

Useful Links

Go Back

Visitor Statistics


Valid XHTML 1.0 Transitional     Valid CSS!

Partners: Cambridge Plus :: Pyrenees Location :: PIC Circuit Design Bedfordshire :: <Link Available>
Unix Man Pages / Linux Man Pages :: HiFi Forum :: SIP VoIP Phone & Provider Reviews :: UNIX/Linux Forum Archives

More info on advertising on Unix/Linux Forum