gpt4 book ai didi

c - 消息队列中的输出被更改/截断

转载 作者:行者123 更新时间:2023-11-30 17:02:10 28 4
gpt4 key购买 nike

我正在尝试掌握消息队列的窍门。由于某种原因,当显示我在控制台中输入的消息时,字符串有时会被截断或更改。有谁知道为什么会发生这种情况?

void *readFromQueue() {
int ret;
mbr = malloc(sizeof(struct msgbuf)); // Allocate space to mbr.
while (TRUE) { // Forever...
ret = (int) msgrcv(msgId, mbr, sizeof(struct msgbuf), myId, MSG_NOERROR | IPC_NOWAIT); // Receive a message
if (ret == -1) { // Check for error.
//perror("Failed to receive message.");
} else {
printf("\t%160s", mbr->mtext);
}
}
}

最佳答案

我发现我的错误在于传递 struct msgbuf 的大小而不是 msgbuf.mtext 的大小。

 ret = msgrcv(msgId, mbr, sizeof(mbr->mtext), myId, MSG_NOERROR | IPC_NOWAIT);

关于c - 消息队列中的输出被更改/截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36681711/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com