9 #define MQNAME "/mytstqueue1"
13 struct mq_attr attr, attr2;
14 struct sigevent sigev;
19 attr.mq_msgsize = 100;
20 mq = mq_open(MQNAME, O_CREAT | O_RDWR | O_EXCL, 0666, &attr);
23 status = mq_unlink(MQNAME);
26 status = mq_getattr(mq, &attr2);
29 if (attr.mq_maxmsg != attr2.mq_maxmsg)
30 err(1, "mq_maxmsg changed");
31 if (attr.mq_msgsize != attr2.mq_msgsize)
32 err(1, "mq_msgsize changed");
34 sigev.sigev_notify = SIGEV_SIGNAL;
35 sigev.sigev_signo = SIGRTMIN;
36 status = mq_notify(mq, &sigev);
39 status = mq_notify(mq, &sigev);
41 err(1, "mq_notify 2");
42 else if (errno != EBUSY)
43 err(1, "mq_notify 3");
44 status = mq_notify(mq, NULL);
46 err(1, "mq_notify 4");
47 status = mq_close(mq);