Linuxでメッセージキューを作成するのに問題があります。私が得ているエラーは「無効な引数」です。私が大邸宅にしなければならないもう一つのことは、コードがQtプロジェクトの一部であるということです。
よくある間違いは、名前が(/)で始まらず、argの数が正しくないことですが、私はそれらをチェックしました!
これが私が実行しようとしているコードです:
#define MQ_TEST_PATH "/test_queue"
#define MQ_MAX_MSG_SIZE 256
#define MQ_MAX_MSG_COUNT 20
struct mq_attr mqAttr;
mqAttr.mq_maxmsg = MQ_MAX_MSG_COUNT;
mqAttr.mq_msgsize = MQ_MAX_MSG_SIZE;
mq_unlink(MQ_TEST_PATH);
mode_t mode = S_IRUSR | S_IWUSR;
int oflags = O_WRONLY | O_CREAT | O_EXCL;
mqd_t mqd;
mqd = mq_open(MQ_TEST_PATH, oflags, mode, &mqAttr);
if(mqd < 0){
perror("Error on open");
qDebug()<<mqd;
return 0;
}
mq_close(mqd);
mq_unlink(MQ_TEST_PATH);
出力:
Error on open: Invalid argument
-1