if((msqid = msgget(ipc_key, IPC_CREAT|0664)) < 0) sys_err("can't get msg queue");
A new message queue is created if key has the value IPC_PRIVATE or key isn't IPC_PRIVATE, no message queue with the given key key exists, and IPC_CREAT is asserted in msgflg (i.e., msgflg&IPC_CREAT is nonzero).