C语言 消息队列中的多条消息



这可能是一个非常愚蠢的问题,但谷歌搜索不起作用,所以在这里。我正在编写一个程序,使用消息队列将一系列值发送到不同的进程。我做过的研究表明,我使用 msgsnd() 在队列中存储消息,并使用 msgrcv() 来接收消息。我需要在队列中存储一个起始编号和一个结束编号。所以我的问题是我可以在这个队列中存储多条消息吗,如果是这样,我该如何存储和检索它们?TIA 感谢您的所有帮助。

队列的概念意味着你可以把东西放进(msgsnd),这会在队列中创建一条消息。要接收一条消息,您必须拨打msgrcv。每个接收通常只返回一条消息,因此如果您发送n消息,则必须接收n消息。

队列通常被视为 FIFO(先进先出),因此由第一个msgsnd创建的消息将是 msgrcv 返回的第一条消息。如果您向通过网络(和/或在群集中)运行的队列发送消息,则这有点弱。由于网络延迟/故障转移/重试等原因,消息可能会出现故障,因此通常建议在生成包含所有必要信息的消息,以便针对这些情况正确处理。

最新更新