The %semctl() function performs semaphore control operations.
For Windows: Not Supported
code = %semctl(sem-ID, semnum, cmd, arg)
| sem-ID | Semaphore ID returned by a call to %semget(). | |
| semnum | Semaphore number in the set, when applicable (depending on cmd). | |
| cmd | Valid values for cmd are defined in sem.h and ipc.h. The commands below are executed with respect to the semaphore specified by sem-ID and semnum: | |
| getval | Returns the value of semval. | |
| setval | Sets semval to the value of arg. | |
| getpid | Returns the value of sempid. | |
| getncnt | Returns the value of semncnt. | |
| getzcnt | Returns the value of semzcnt. | |
| The commands below apply to all semaphores in the set: | ||
| getall | Place all the semaphore values in the arg dimensioned array. | |
| setall | Set all the semaphores to the values contained in the dimensioned array arg. | |
| These commands are also available: | ||
| ipc$stat | Return a dimensioned array that contains the various fields of the UNIX semaphore structures. The elements are (see the UNIX system documentation): | |
| 1 sem_perm.uid | ||
| 2 sem_perm.cid | ||
| 3 sem_perm.guid | ||
| 4 sem_perm.gcid | ||
| 5 sem_perm.mode | ||
| 6 sem_perm.seq | ||
| 7 sem_perm.key | ||
| 8 sem_nsems | ||
| 9 sem_otime | ||
| 10 sem_ctime | ||
| ipc$set | Sets the values of the below members of the data structure associated to sem-ID to the first three elements of the array arg: | |
| 1 sem_perm.uid | ||
| 2 sem_perm.gid | ||
| 3 sem_perm.mode | ||
| ipc$rmid | Removes the semaphore identifier. | |
| arg | Dimensioned array that contains the argument. | |
include dm,bp,unix.h ipc.h include dm,bp,unix.h sem.h * Set initial semaphore values dim val(3) mat val=0 %semctl(sem-ID, 0, setall, val)