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

# [NAME](#NAME)

IPC::Msg - SysV Msg IPC object class

# [SYNOPSIS](#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](#DESCRIPTION)

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

# [METHODS](#METHODS)

[new ( KEY , FLAGS )](#new)

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](#id)

Returns the system message queue identifier.

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

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

[remove](#remove)

Remove and destroy the message queue from the system.

[set ( STAT )](#set)

[set ( NAME =&gt; VALUE \[, NAME =&gt; VALUE ...\] )](#set~2)

"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 \] )](#snd)

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

[stat](#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](#SEE_ALSO)

IPC::SysV, Class::Struct

# [AUTHORS](#AUTHORS)

Graham Barr &lt;gbarr@pobox.com&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-21 perl v5.44.0

---

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