---
name: "IPC::Msg"
section: "3perl"
platform: "linux"
package: "perl"
version: "5.44.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/IPC::Msg/3perl"
---

# IPC::Msg(3perl)

SysV Msg IPC object class

## NAME

IPC::Msg - SysV Msg IPC object class

## SYNOPSIS

```
    use IPC::SysV qw(IPC_PRIVATE S_IRUSR S_IWUSR);
    use IPC::Msg;
    $msg = IPC::Msg->new(IPC_PRIVATE, S_IRUSR | S_IWUSR);
    $msg->snd($msgtype, $msgdata);
    $msg->rcv($buf, 256);
    $ds = $msg->stat;
    $msg->remove;
```

## DESCRIPTION

A class providing an object based interface to SysV IPC message queues.

## METHODS

- new ( KEY , FLAGS )

  Creates a new message queue associated with `"KEY"`. A new queue is created if

  - •

    `"KEY"` is equal to `"IPC_PRIVATE"`

  - •

    `"KEY"` does not already have a message queue associated with it, and `"`*FLAGS*` & IPC_CREAT"` is true.

  On creation of a new message queue `"FLAGS"` is used to set the permissions.  Be careful not to set any flags that the Sys V IPC implementation does not allow: in some systems setting execute bits makes the operations fail.

- id

  Returns the system message queue identifier.

- rcv ( BUF, LEN \[, TYPE \[, FLAGS \]\] )

  Read a message from the queue. Returns the type of the message read. See [**msgrcv**(2)](/msgrcv/2.md).  The BUF becomes tainted.

- remove

  Remove and destroy the message queue from the system.

- set ( STAT )

  - set ( NAME =\> VALUE \[, NAME =\> VALUE ...\] )

  `"set"` will set the following values of the `"stat"` structure associated with the message queue.

  ```
      uid
      gid
      mode (oly the permission bits)
      qbytes
  ```

  `"set"` accepts either a stat object, as returned by the `"stat"` method, or a list of *name*-*value* pairs.

- snd ( TYPE, MSG \[, FLAGS \] )

  Place a message on the queue with the data from `"MSG"` and with type `"TYPE"`. See [**msgsnd**(2)](/msgsnd/2.md).

- stat

  Returns an object of type `"IPC::Msg::stat"` which is a sub-class of `"Class::Struct"`. It provides the following fields. For a description of these fields see you system documentation.

  ```
      uid
      gid
      cuid
      cgid
      mode
      qnum
      qbytes
      lspid
      lrpid
      stime
      rtime
      ctime
  ```

## SEE ALSO

IPC::SysV, Class::Struct

## AUTHORS

Graham Barr \<gbarr@pobox.com\>, Marcus Holland-Moritz \<mhx@cpan.org\>

## 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.
