gpt4 book ai didi

c - 从消息队列接收

转载 作者:行者123 更新时间:2023-11-30 18:08:25 26 4
gpt4 key购买 nike

我已经使用以下命令成功创建了消息队列:

msgIdHareTurtle =  msgget(keyHareTurtle, 0644 | IPC_CREAT | O_NONBLOCK);  

现在我想将队列发送到我使用的其他进程,

msgsnd(msgIdHareTurtle, (struct msgbuf *)&bufHareTurtle, sizeof(int), IPC_NOWAIT);  

我尝试通过以下方式在不同的进程中接收它:

msgrcv(msgIdHareTurtle, (struct msgbuf *)&bufHareTurtle, sizeof(int), 0, IPC_NOWAIT);

我的结构 bufHareTurtle 具有以下类型:

typedef struct smsgbuf{
long mtype;
unsigned int position;
} smsgbuf;

我的问题:发送成功并且程序(两个进程)也在运行,但是每当我发送一个无符号整数(例如 2 )时,我每次都会得到接收值(在后面的过程中)为 0 。有人可以告诉我这段代码中有什么错误或者其他地方可能有什么错误。

最佳答案

问题出在同步上。由于中间插入了 sleep ,向队列的发送被延迟。我更正了它,错误消失了

关于c - 从消息队列接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3442716/

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