title: creating a queue message returns zero in id
body: <p>I can't figure out what I missed. The first time that I run this <code>msgget() retuns 0</code> but <code>msgctl()</code> can remove it. The second time still having <code>0</code> and <code>msgctl()</code> aborts with invalid argument error. </p>
  
  <p>Already tried to use some key instead of <code>IPC_PRIVATE</code></p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;unistd.h&gt;
  #include &lt;errno.h&gt;
  #include &lt;string.h&gt;
  #include &lt;signal.h&gt;
  #include &lt;sys/types.h&gt;
  #include &lt;sys/wait.h&gt;
  #include &lt;sys/ipc.h&gt;
  #include &lt;sys/shm.h&gt;
  #include &lt;sys/sem.h&gt;
  #include &lt;sys/msg.h&gt;
  #include &lt;time.h&gt;
  
  #define DEBUG
  
  int main(){
      int queue_id;
  
      if(queue_id = msgget(IPC_PRIVATE, IPC_CREAT | IPC_EXCL | 0600) == -1){
           perror("queue");
           return -1;
      }
  
      if(msgctl(queue_id, IPC_RMID, NULL) == -1) {
           perror("queue rmid:");
      }
  
               return 0;
  }
  </code></pre>