AT&T UNIX™PC Unix System V Users Manual - tenox
AT&T UNIX™PC Unix System V Users Manual - tenox AT&T UNIX™PC Unix System V Users Manual - tenox
SEMCTL (2) SEMCTL (2) the corresponding value found in the structure pointed to by arg. buf: sem_perm.uid sem_perm.gid sem_perm.mode /* only low 9 bits •/ This command can only be executed by a process that has an effective user ID equal to either that of super user or to the value of sem_perm.uid in the data structure associated with semid. 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 only be executed by a process that has an effective user ID equal to either that of super user or to the value of sem_perm.uid in the data structure associated with semid . Semctl will fail if one or more of the following are true: Semid is not a valid semaphore identifier. [EINVAL[ Semnum is less than zero or greater than sem_nsems. [EINV AL[ Cmd is not a valid command. [EINV AL[ Operation permission is denied to the calling process (see intro(2)). [EACCES[ Cmd is SETVAL or SETALL and the value to which semval is to be set is greater than the system imposed maximum. [ERANGE[ Cmd is equal to IPC_RMID or IPC_SET and the effective user ID of the calling process is not equal to that of super user and it is not equal to the value of sem_perm.uid in the data structure associated with semid. [EPERM[ Arg.bufpoints to an illegal address. [EFAULT[ RETURN VALUE Upon successful completion, the value returned depends on cmd as follows: GETV AL The value of semval. GETPID The value of sempid. GETNCNT The value of semncnt. GETZCNT The value of semzcnt. All others A value of 0. Otherwise, a value of -1 is returned and errno is set to indicate the error. SEE ALSO semget(2), semop(2), stdipc(3C). - 2-
SEMGET (2) SEMGET (2) NAME semget - get set of semaphores SYNOPSIS #include #include #include int semget (key, nsems, semflg) key_t key; int nsems, semflg; DESCRIPTION Semget returns the semaphore identifier associated with key. A semaphore identifier and associated data structure and set containing nsems semaphores (see intro (2)) are created for key if one of the following are true: Key is equal to IPC_PRIVATE. Key does not already have a semaphore identifier associated with it, and (semflg & IPC_CREAT) is "true". Upon creation, the data structure associated with the new semaphore identifier is initialized as follows: 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, respectively, of the calling process. The low-order 9 bits of sem_perm.mode are set equal to the low-order 9 bits of semflg . Sem_nsems is set equal to the value of nsems . Sem_otime is set equal to 0 and sem_ctime is set equal to the current time. Semget will fail if one or more of the following are true: Nsems is either less than or equal to zero or greater than the system imposed limit. ]EINVALJ 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. ]EACCES] 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 zero. ]EINV AL] A semaphore identifier does not exist for key and (semftg & IPC_CREAT) is "false". ]ENOENT] A semaphore identifier is to be created but the system imposed limit on the maximum number of allowed semaphore identifiers system wide would be exceeded. ]ENOSPC] A semaphore identifier is to be created but the system imposed limit on the maximum number of allowed semaphores system wide would be exceeded. ]ENOSPC] - 1 -
- Page 686 and 687: FCNTL (2) FCNTL (2) immediately wit
- Page 689 and 690: FORK(2) FORK(2) NAME fork - create
- Page 691: GETPID ( 2} GETPID (2) NAME getpid,
- Page 694 and 695: I I I I I I I I I I I I I I I I I I
- Page 696 and 697: �-
- Page 699: LINK ( 2 ) LINK ( 2 ) NAME link - l
- Page 703 and 704: MKNOD (2) MKNOD (2) NAME mknod - ma
- Page 705: MOUNT (2) MOUNT (2) NAME mount - mo
- Page 708 and 709: MSGCTL(2) MSGCTL ( 2 ) user ID of t
- Page 710 and 711: MSGGET (2) MSGGET (2) SEE ALSO msgc
- Page 712 and 713: MSGOP ( 2) MSGOP (2) the calling pr
- Page 714 and 715: If)
- Page 717 and 718: OPEN ( 2 ) OPEN ( 2 ) NAME open - o
- Page 719: OPEN(2) OPEN(2) O_NDELAY is set, th
- Page 722 and 723: I�
- Page 725 and 726: PLOCK(2) PLOCK(2) NAME plock - lock
- Page 727: PROFIL ( 2 ) PROFIL ( 2 ) NAME prof
- Page 730 and 731: PTRACE (2) PTRACE (2) 4, 5 With the
- Page 732 and 733: (� �--- .
- Page 735: SEMCTL ( 2 ) SEMCTL ( 2 ) NAME semc
- Page 739 and 740: SEMOP ( 2) SEMOP {2) NAME semop - s
- Page 741 and 742: SEMOP (2) SEMOP (2) Operation permi
- Page 743: SETPGRP (2) SETPGRP (2) NAME setpgr
- Page 747 and 748: SHMCTL (2) SHMCTL (2) NAME shmctl -
- Page 749 and 750: � ! SHMGET (2) SHMGET (2) NAME sh
- Page 751 and 752: SHMOP ( 2 ) SHMOP ( 2 ) NAME shmop
- Page 753 and 754: SIGNAL (2) SIGNAL (2) NAME signal -
- Page 755 and 756: SIGNAL (2) SIGNAL (2) Sig is an ill
- Page 757 and 758: STAT ( 2 ) STAT ( 2 ) NAME stat, fs
- Page 759 and 760: STIME(2) STIME(2) NAME stime - set
- Page 761 and 762: SYNC ( 2) SYNC (2) NAME sync - upda
- Page 763 and 764: SYSLOCAL ( 2) SYSLOCAL ( 2) NAME Sy
- Page 765: TIME ( 2) TIME(2) NAME time - get t
- Page 768 and 769: .�.· '··.· ·•. J '·· -,
- Page 771 and 772: UMASK( 2 ) UMASK ( 2 ) NAME umask -
- Page 773 and 774: UMOUNT (2) UMOUNT (2) NAME umount -
- Page 775: UNAME ( 2 ) UNAME (2) NAME uname -
- Page 779: USTAT (2) USTAT (2) NAME ustat - ge
- Page 783 and 784: WAIT ( 2 ) WAIT ( 2 ) NAME wait - w
- Page 785 and 786: WRITE(2) WRITE (2) NAME write - wri
SEMGET (2) SEMGET (2)<br />
NAME<br />
semget - get set of semaphores<br />
SYNOPSIS<br />
#include <br />
#include <br />
#include <br />
int semget (key, nsems, semflg)<br />
key_t key;<br />
int nsems, semflg;<br />
DESCRIPTION<br />
Semget returns the semaphore identifier associated with key.<br />
A semaphore identifier and associated data structure and set containing<br />
nsems semaphores (see intro (2)) are created for key if one<br />
of the following are true:<br />
Key is equal to IPC_PRIVATE.<br />
Key does not already have a semaphore identifier associated<br />
with it, and (semflg & IPC_CREAT) is "true".<br />
Upon creation, the data structure associated with the new semaphore<br />
identifier is initialized as follows:<br />
Sem_perm.cuid, sem_perm.uid, sem_perm.cgid, and<br />
sem_perm.gid are set equal to the effective user ID and<br />
effective group ID, respectively, of the calling process.<br />
The low-order 9 bits of sem_perm.mode are set equal to<br />
the low-order 9 bits of semflg .<br />
Sem_nsems is set equal to the value of nsems .<br />
Sem_otime is set equal to 0 and sem_ctime is set equal<br />
to the current time.<br />
Semget will fail if one or more of the following are true:<br />
Nsems is either less than or equal to zero or greater than<br />
the system imposed limit. ]EINVALJ<br />
A semaphore identifier exists for key but operation permission<br />
(see intro(2)) as specified by the low-order 9 bits of<br />
semflg would not be granted. ]EACCES]<br />
A semaphore identifier exists for key but the number of<br />
semaphores in the set associated with it is less than nsems<br />
and nsems is not equal to zero. ]EINV AL]<br />
A semaphore identifier does not exist for key and (semftg<br />
& IPC_CREAT) is "false". ]ENOENT]<br />
A semaphore identifier is to be created but the system<br />
imposed limit on the maximum number of allowed semaphore<br />
identifiers system wide would be exceeded.<br />
]ENOSPC]<br />
A semaphore identifier is to be created but the system<br />
imposed limit on the maximum number of allowed semaphores<br />
system wide would be exceeded. ]ENOSPC]<br />
- 1 -