[Chapter 3] 3.2.138 semop
Author: Larry Wall, Tom Christiansen & Randal L. Schwartz
Date: 1999-07-02T01:53:51Z

#

| Chapter 3 Functions |

### 3.2.138 semop

    semop KEY, OPSTRING

This function calls the System V IPC system call semop(2) to perform semaphore operations such as signaling and waiting. `OPSTRING` must be a packed array of `semop` structures. You can make each semop structure by saying `pack("s*", $semnum, $semop, $semflag)`. The number of semaphore operations is implied by the length of `OPSTRING`. The function returns true if successful, or false if there is an error. On error, it puts the error code into $!. Before calling, you should say:

    require "ipc.ph";
    require "sem.ph";

The following code waits on semaphore `$semnum` of semaphore id `$semid`:

    $semop = pack "s*", $semnum, -1, 0;
    die "Semaphore trouble: $!\n" unless semop $semid, $semop;

To signal the semaphore, simply replace `-1` with `1`.

This function is available only on machines supporting System V IPC.

3.2.137 semget |  | 3.2.139 send