<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="generator" content="rustdoc">
    <meta name="description" content="API documentation for the Rust `mqueue` mod in crate `nix`.">
    <meta name="keywords" content="rust, rustlang, rust-lang, mqueue">

    <title>nix::mqueue - Rust</title>

    <link rel="stylesheet" type="text/css" href="../../normalize.css">
    <link rel="stylesheet" type="text/css" href="../../rustdoc.css">
    <link rel="stylesheet" type="text/css" href="../../main.css">
    

    
    
</head>
<body class="rustdoc mod">
    <!--[if lte IE 8]>
    <div class="warning">
        This old browser is unsupported and will most likely display funky
        things.
    </div>
    <![endif]-->

    

    <nav class="sidebar">
        
        <p class='location'>Module mqueue</p><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li></ul></div><p class='location'><a href='../index.html'>nix</a></p><script>window.sidebarCurrent = {name: 'mqueue', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script>
    </nav>

    <nav class="sub">
        <form class="search-form js-only">
            <div class="search-container">
                <input class="search-input" name="search"
                       autocomplete="off"
                       placeholder="Click or press ‘S’ to search, ‘?’ for more options…"
                       type="search">
            </div>
        </form>
    </nav>

    <section id='main' class="content">
<h1 class='fqn'><span class='in-band'>Module <a href='../index.html'>nix</a>::<wbr><a class="mod" href=''>mqueue</a></span><span class='out-of-band'><span id='render-detail'>
                   <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
                       [<span class='inner'>&#x2212;</span>]
                   </a>
               </span><a class='srclink' href='../../src/nix/mqueue.rs.html#1-153' title='goto source code'>[src]</a></span></h1>
<div class='docblock'><p>Posix Message Queue functions</p>

<p><a href="http://man7.org/linux/man-pages/man7/mq_overview.7.html">Further reading and details on the C API</a></p>
</div><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
<table>
                       <tr class=' module-item'>
                           <td><a class="struct" href="struct.FdFlag.html"
                                  title='struct nix::mqueue::FdFlag'>FdFlag</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="struct" href="struct.MQ_OFlag.html"
                                  title='struct nix::mqueue::MQ_OFlag'>MQ_OFlag</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="struct" href="struct.MqAttr.html"
                                  title='struct nix::mqueue::MqAttr'>MqAttr</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr></table><h2 id='constants' class='section-header'><a href="#constants">Constants</a></h2>
<table>
                       <tr class=' module-item'>
                           <td><a class="constant" href="constant.FD_CLOEXEC.html"
                                  title='constant nix::mqueue::FD_CLOEXEC'>FD_CLOEXEC</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="constant" href="constant.O_CLOEXEC.html"
                                  title='constant nix::mqueue::O_CLOEXEC'>O_CLOEXEC</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="constant" href="constant.O_CREAT.html"
                                  title='constant nix::mqueue::O_CREAT'>O_CREAT</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="constant" href="constant.O_EXCL.html"
                                  title='constant nix::mqueue::O_EXCL'>O_EXCL</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="constant" href="constant.O_NONBLOCK.html"
                                  title='constant nix::mqueue::O_NONBLOCK'>O_NONBLOCK</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="constant" href="constant.O_RDONLY.html"
                                  title='constant nix::mqueue::O_RDONLY'>O_RDONLY</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="constant" href="constant.O_RDWR.html"
                                  title='constant nix::mqueue::O_RDWR'>O_RDWR</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="constant" href="constant.O_WRONLY.html"
                                  title='constant nix::mqueue::O_WRONLY'>O_WRONLY</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr></table><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
<table>
                       <tr class=' module-item'>
                           <td><a class="fn" href="fn.mq_close.html"
                                  title='fn nix::mqueue::mq_close'>mq_close</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="fn" href="fn.mq_getattr.html"
                                  title='fn nix::mqueue::mq_getattr'>mq_getattr</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="fn" href="fn.mq_open.html"
                                  title='fn nix::mqueue::mq_open'>mq_open</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="fn" href="fn.mq_receive.html"
                                  title='fn nix::mqueue::mq_receive'>mq_receive</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="fn" href="fn.mq_remove_nonblock.html"
                                  title='fn nix::mqueue::mq_remove_nonblock'>mq_remove_nonblock</a></td>
                           <td class='docblock-short'>
                                <p>Convenience function.
Removes <code>O_NONBLOCK</code> attribute for a given message queue descriptor
Returns the old attributes</p>
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="fn" href="fn.mq_send.html"
                                  title='fn nix::mqueue::mq_send'>mq_send</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="fn" href="fn.mq_set_nonblock.html"
                                  title='fn nix::mqueue::mq_set_nonblock'>mq_set_nonblock</a></td>
                           <td class='docblock-short'>
                                <p>Convenience function.
Sets the <code>O_NONBLOCK</code> attribute for a given message queue descriptor
Returns the old attributes</p>
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="fn" href="fn.mq_setattr.html"
                                  title='fn nix::mqueue::mq_setattr'>mq_setattr</a></td>
                           <td class='docblock-short'>
                                <p>Set the attributes of the message queue. Only <code>O_NONBLOCK</code> can be set, everything else will be ignored
Returns the old attributes
It is recommend to use the <code>mq_set_nonblock()</code> and <code>mq_remove_nonblock()</code> convenience functions as they are easier to use</p>
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="fn" href="fn.mq_unlink.html"
                                  title='fn nix::mqueue::mq_unlink'>mq_unlink</a></td>
                           <td class='docblock-short'>
                                
                           </td>
                       </tr></table></section>
    <section id='search' class="content hidden"></section>

    <section class="footer"></section>

    <aside id="help" class="hidden">
        <div>
            <h1 class="hidden">Help</h1>

            <div class="shortcuts">
                <h2>Keyboard Shortcuts</h2>

                <dl>
                    <dt>?</dt>
                    <dd>Show this help dialog</dd>
                    <dt>S</dt>
                    <dd>Focus the search field</dd>
                    <dt>&larrb;</dt>
                    <dd>Move up in search results</dd>
                    <dt>&rarrb;</dt>
                    <dd>Move down in search results</dd>
                    <dt>&#9166;</dt>
                    <dd>Go to active search result</dd>
                    <dt>+</dt>
                    <dd>Collapse/expand all sections</dd>
                </dl>
            </div>

            <div class="infos">
                <h2>Search Tricks</h2>

                <p>
                    Prefix searches with a type followed by a colon (e.g.
                    <code>fn:</code>) to restrict the search to a given type.
                </p>

                <p>
                    Accepted types are: <code>fn</code>, <code>mod</code>,
                    <code>struct</code>, <code>enum</code>,
                    <code>trait</code>, <code>type</code>, <code>macro</code>,
                    and <code>const</code>.
                </p>

                <p>
                    Search functions by type signature (e.g.
                    <code>vec -> usize</code> or <code>* -> vec</code>)
                </p>
            </div>
        </div>
    </aside>

    

    <script>
        window.rootPath = "../../";
        window.currentCrate = "nix";
    </script>
    <script src="../../main.js"></script>
    <script defer src="../../search-index.js"></script>
</body>
</html>