semop man page on HP-UX

Man page or keyword search:  
man Server   10987 pages
apropos Keyword Search (all sections)
Output format
HP-UX logo
[printable version]

semop(2)							      semop(2)

NAME
       semop(), semtimedop() - semaphore operations

SYNOPSIS
DESCRIPTION
       is  used	 to atomically perform an array of semaphore operations on the
       set of semaphores associated with the semaphore identifier specified by
       semid.	sops  is  a pointer to the array of semaphore-operation struc‐
       tures.  nsops is the number of such structures in the array.  The  con‐
       tents of each structure includes the following members:

       Each semaphore operation specified by sem_op is performed on the corre‐
       sponding semaphore specified by semid  and  sem_num.   Semaphore	 array
       operations are atomic in that none of the semaphore operations are per‐
       formed until blocking conditions on all of the semaphores in the	 array
       have been removed.

       sem_op specifies one of three semaphore operations as follows:

	      ·	 If sem_op is a negative integer, one of the following occurs:

		 If  semaphore value (see semaphore identifier in glossary(9))
		 is greater than or equal to the absolute value of sem_op, the
		 absolute  value of sem_op is subtracted from semaphore value.
		 Also, if (sem_flg & is "true", the absolute value  of	sem_op
		 is  added  to	the  calling process's semadj value (see glos‐
		 sary(9) and exit(2)) for the specified semaphore.

		 If semaphore value is less than the absolute value of	sem_op
		 and (sem_flg & is "true", returns immediately.

		 If  semaphore value is less than the absolute value of sem_op
		 and (sem_flg & is ``false'', increments  the  internal	 sema‐
		 phore	waiter	count  associated with the specified semaphore
		 and suspend execution of the calling process until one of the
		 following conditions occur:

		     Semaphore	value  becomes	greater	 than  or equal to the
		     absolute value of sem_op.	When this occurs, the value of
		     internal semaphore waiter count associated with the spec‐
		     ified semaphore is decremented,  the  absolute  value  of
		     sem_op   is  subtracted  from  semaphore  value  and,  if
		     (sem_flg & is "true", the absolute	 value	of  sem_op  is
		     added to the calling process's semadj value for the spec‐
		     ified semaphore.

		     The semid for  which  the	calling	 process  is  awaiting
		     action  is removed from the system (see semctl(2)).  When
		     this occurs, is set  equal	 to  and  a  value  of	−1  is
		     returned.

		     The  calling  process  receives  a	 signal	 that is to be
		     caught.  When this occurs, the value  of  internal	 sema‐
		     phore  waiter  count  associated with the specified sema‐
		     phore is decremented, and	the  calling  process  resumes
		     execution in the manner prescribed in signal(5).

	      ·	 If sem_op is a positive integer, the value of sem_op is added
		 to semaphore value and, if (sem_flg & is "true", the value of
		 sem_op	 is subtracted from the calling process's semadj value
		 for the specified semaphore.

	      ·	 If sem_op is zero, one of the following occurs:

		 If semaphore value is zero, proceeds to  the  next  semaphore
		 operation  specified by sops , or returns immediately if this
		 is the last operation.

		 If semaphore value is not equal to zero  and  (sem_flg	 &  is
		 "true", returns immediately.

		 If  semaphore	value  is  not equal to zero and (sem_flg & is
		 ``false'', increments the internal zero waiter count  associ‐
		 ated  with  the specified semaphore and suspends execution of
		 the calling process until one of the following occurs:

		     Semaphore value becomes zero, at which time the value  of
		     internal  zero waiter count associated with the specified
		     semaphore is decremented.

		     The semid for  which  the	calling	 process  is  awaiting
		     action  is removed from the system.  When this occurs, is
		     set equal to and a value of −1 is returned.

		     The calling process receives  a  signal  that  is	to  be
		     caught.   When  this  occurs,  the value of internal zero
		     waiter count associated with the specified	 semaphore  is
		     decremented, and the calling process resumes execution in
		     the manner prescribed in signal(5).

       is identical to except that an additional constraint is provided by the
       timeout parameter.  If must suspend the calling process longer than the
       time indicated by timeout, or if the timeout expires while the  calling
       process is suspended in the call returns an error.

       If  the	structure  pointed to by the timeout parameter is zero-valued,
       returns with an error immediately if it would otherwise have to suspend
       the calling program.

       If the timeout parameter is the NULL pointer, behaves exactly like

EXAMPLES
       The  following  call to atomically performs a "P" or "get" operation on
       the second semaphore in the semaphore set and a "V" or "release" opera‐
       tion  on	 the  third  semaphore	in  the set.  This example assumes the
       process has a valid semid which represents a set	 of  4	semaphores  as
       shown on the semget(2) manual page.  It also assumes that the semaphore
       values of the semaphores in the set have been initialized as  shown  in
       the semctl(2) manual entry.

RETURN VALUE
       If or returns due to the receipt of a signal, a value of −1 is returned
       to the calling process and is set to If it returns due to  the  removal
       of a semid from the system, a value of −1 is returned and is set to

       Upon  successful	 completion, a non-negative value is returned.	Other‐
       wise, a value of −1 is returned and is set to indicate the error.

ERRORS
       fails if one or more of the following is true for any of the  semaphore
       operations specified by sops:

	      semid	   is not a valid semaphore identifier.

	      sem_num	   is  less  than zero or greater than or equal to the
			   number of semaphores in  the	 set  associated  with
			   semid.

	      nsops	   is greater than the system-imposed maximum.

	      Operation permission is denied to the calling process (see
			   glossary(9)).

	      The  operation would result in suspension of the calling process
	      but
			   (sem_flg & is "true".

	      The limit on the number of individual  processes requesting an
			   would be exceeded.

	      The number  of  individual  semaphores  for  which  the  calling
	      process
			   requests a would exceed the limit.

	      An operation would cause a
			   semaphore  value  to	 overflow  the	system-imposed
			   limit.

	      An operation would cause a
			   semadj value to overflow the system-imposed limit.

	      sops	   points to an illegal address.  The reliable	detec‐
			   tion	 of  this  error will be implementation depen‐
			   dent.

       fails if one or more of the following is true:

	      The	   timeout argument points to an illegal address.

	      The	   timeout argument has one or	more  invalid  fields.
			   For	example,  tv_sec  or tv_nsec is less than 0 or
			   tv_nsec is greater than or equal to one billion.

	      The timeout expired before the  semaphore	 operations  could  be
	      completed.

       Upon  successful	 completion,  each  semaphore  specified  in the array
       pointed to sops will be updated to record the current time as the  last
       operation time and the process ID of the calling process as the last to
       have modified that semaphore.

SEE ALSO
       ipcs(1), exec(2), exit(2), fork(2), semctl(2),  semget(2),  stdipc(3C),
       privileges(5), signal(5).

STANDARDS CONFORMANCE
								      semop(2)
[top]

List of man pages available for HP-UX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net