Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
semget(2)			 System	Calls			     semget(2)

       semget -	get set	of semaphores

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

       int semget(key_t	key, int nsems,	int semflg);

       The  semget() function returns the semaphore identifier associated with

       A semaphore identifier and associated data structure and	set containing
       nsems  semaphores (see intro(2))	are created for	key if one of the fol-
       lowing is true:

	 o  key	is equal to IPC_PRIVATE.

	 o  key	does not already have a	semaphore identifier  associated  with
	    it,	and (semflg&IPC_CREAT) is true.

       On creation, the	data structure associated with the new semaphore iden-
       tifier is initialized as	follows:

	 o  sem_perm.cuid, sem_perm.uid, sem_perm.cgid,	and  sem_perm.gid  are
	    set	equal to the effective user ID and effective group ID, respec-
	    tively, of the calling process.

	 o  The	access permission bits of sem_perm.mode	are set	equal  to  the
	    access permission bits of semflg.

	 o  sem_nsems is set equal to the value	of nsems.

	 o  sem_otime is set equal to 0	and sem_ctime is set equal to the cur-
	    rent time.

       Upon successful completion, a non-negative integer representing a sema-
       phore  identifier  is  returned.	Otherwise, -1 is returned and errno is
       set to indicate the error.

       The semget() function will fail if:

       EACCES	       A semaphore identifier exists for  key,	but  operation
		       permission (see intro(2)) as specified by the low-order
		       9 bits of semflg	would not be granted.

       EEXIST	       A semaphore identifier exists for key  but  both	 (sem-
		       flg&IPC_CREAT) and (semflg&IPC_EXCL) are	both true.

       EINVAL	       The nsems argument is either less than or equal to 0 or
		       greater than the	system-imposed limit. See NOTES.

		       A semaphore identifier exists for key, but  the	number
		       of  semaphores  in  the	set associated with it is less
		       than nsems and nsems is not equal to 0.

       ENOENT	       A semaphore identifier does not exist for key and (sem-
		       flg&IPC_CREAT) is false.

       ENOSPC	       A semaphore identifier is to be created but the system-
		       imposed limit on	the maximum number  of	allowed	 sema-
		       phores  or  semaphore  identifiers system-wide would be
		       exceeded. See NOTES.

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

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Interface Stability	     |Standard			   |

       ipcrm(1),  ipcs(1),   rctladm(1M),   intro(2),	semctl(2),   semop(2),
       setrctl(2), ftok(3C), attributes(5), standards(5)

       The  system-imposed  limit  on  the  value of the nsems argument	is the
       maintained on a per-process basis using the  process.max-sem-nsems  re-
       source control.

       The  system-imposed  limit  on  the  number of semaphore	identifiers is
       maintained on a per-project basis  using	 the  project.max-sem-ids  re-
       source control.

	See  rctladm(1M)  and  setrctl(2) for information about	using resource

SunOS 5.10			  11 Feb 2003			     semget(2)


Want to link to this manual page? Use this URL:

home | help