gpt4 book ai didi

c - Linux 中队列的 mq_receive 中的奇怪输出

转载 作者:太空宇宙 更新时间:2023-11-04 03:38:27 25 4
gpt4 key购买 nike

我正在基于 Linux 的系统上使用具有 2 个不同文件的队列。

我通过 mq_send() 发送一个结构,并在另一个文件中使用 mq_receive() 接收。

当我使用完美工作的 char * 时,但现在,我放置我的结构,我用 (char *) 转换它并且发送发生,但我没有收到我必须收到的内容,并且接收中收到的字节数始终是 收到的字节数:18446744073709551615

我的结构是这样的:

struct men
{
int a;
int b;
};

我还将结构的 sizeof 放入 mq_send()mq_receive() 中,并将队列的属性放入 .mq_msgsize 中。

我努力寻找问题所在,改变尺寸等等,但我找不到错误。

谢谢!

最佳答案

18446744073709551615 被 -1 映射到无符号 64 位整数。这表明 mq_receive() 失败。您需要查看 errno 来确定失败的原因。

您不需要更改 .mq_msgsize。我会坚持使用 mq_open(),因为这是一个非常小的结构。

关于c - Linux 中队列的 mq_receive 中的奇怪输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30719752/

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