IPC::SysV(3pm) Perl Programmers Reference Guide IPC::SysV(3pm)

# [NAME](#NAME)

IPC::SysV - System V IPC constants and system calls

# [SYNOPSIS](#SYNOPSIS)

```
  use IPC::SysV qw(IPC_STAT IPC_PRIVATE);
```

# [DESCRIPTION](#DESCRIPTION)

"IPC::SysV" defines and conditionally exports all the constants defined in your system include files which are needed by the SysV IPC calls. Common ones include

```
  IPC_CREAT IPC_EXCL IPC_NOWAIT IPC_PRIVATE IPC_RMID IPC_SET IPC_STAT
  GETVAL SETVAL GETPID GETNCNT GETZCNT GETALL SETALL
  SEM_A SEM_R SEM_UNDO
  SHM_RDONLY SHM_RND SHMLBA
```

and auxiliary ones

```
  S_IRUSR S_IWUSR S_IRWXU
  S_IRGRP S_IWGRP S_IRWXG
  S_IROTH S_IWOTH S_IRWXO
```

but your system might have more.

[ftok( PATH )](#ftok%28)

[ftok( PATH, ID )](#ftok%28~2)

Return a key based on PATH and ID, which can be used as a key for "msgget", "semget" and "shmget". See [**ftok**(3)](/man/os/perl/ftok.3).

If ID is omitted, it defaults to 1. If a single character is given for ID, the numeric value of that character is used.

[shmat( ID, ADDR, FLAG )](#shmat%28)

Attach the shared memory segment identified by ID to the address space of the calling process. See [**shmat**(2)](/man/os/perl/shmat.2).

ADDR should be "undef" unless you really know what you're doing.

[shmdt( ADDR )](#shmdt%28)

Detach the shared memory segment located at the address specified by ADDR from the address space of the calling process. See [**shmdt**(2)](/man/os/perl/shmdt.2).

[memread( ADDR, VAR, POS, SIZE )](#memread%28)

Reads SIZE bytes from a memory segment at ADDR starting at position POS. VAR must be a variable that will hold the data read. Returns true if successful, or false if there is an error. **memread()** taints the variable.

[memwrite( ADDR, STRING, POS, SIZE )](#memwrite%28)

Writes SIZE bytes from STRING to a memory segment at ADDR starting at position POS. If STRING is too long, only SIZE bytes are used; if STRING is too short, nulls are written to fill out SIZE bytes. Returns true if successful, or false if there is an error.

# [SEE ALSO](#SEE_ALSO)

IPC::Msg, IPC::Semaphore, IPC::SharedMem, [**ftok**(3)](/man/os/perl/ftok.3), [**shmat**(2)](/man/os/perl/shmat.2), [**shmdt**(2)](/man/os/perl/shmdt.2)

# [AUTHORS](#AUTHORS)

Graham Barr &lt;gbarr@pobox.com&gt;, Jarkko Hietaniemi &lt;jhi@iki.fi&gt;, Marcus Holland-Moritz &lt;mhx@cpan.org&gt;

# [COPYRIGHT](#COPYRIGHT)

Version 2.x, Copyright (C) 2007-2013, Marcus Holland-Moritz.

Version 1.x, Copyright (c) 1997, Graham Barr.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

2026-10-27 perl v5.44.0

---

Document: IPC::SysV(3pm) from perl 5.44.0-r4 (Chainguard OS)
Source: https://github.com/Perl/perl5.git
