C 系统V-后进先出方式

C 系统V-后进先出方式,c,linux,posix,system,C,Linux,Posix,System,我正在使用SystemV管理消息队列。 我成功地制作了一个工作原型,一切正常,但是我希望有一个后进先出队列而不是FIFO(预期最后一个msgsnd发送的消息是第一次读取msgget) 这可能吗?如果正确管理邮件类型,则可以msgrcv手册规定: 参数msgtyp指定作为请求的消息的类型 如下: 如果msgtyp为0,则接收队列上的第一条消息 如果msgtyp 大于0时,将收到msgtyp类型的第一条消息 如果 msgtyp小于0,这是最低类型的第一条消息 接收到小于或等于msgtyp的绝对值

我正在使用SystemV管理消息队列。 我成功地制作了一个工作原型,一切正常,但是我希望有一个后进先出队列而不是FIFO(预期最后一个
msgsnd
发送的消息是第一次读取
msgget


这可能吗?

如果正确管理邮件类型,则可以<代码>msgrcv手册规定:

参数msgtyp指定作为请求的消息的类型 如下:

  • 如果msgtyp为0,则接收队列上的第一条消息

  • 如果msgtyp 大于0时,将收到msgtyp类型的第一条消息

  • 如果 msgtyp小于0,这是最低类型的第一条消息 接收到小于或等于msgtyp的绝对值


然后,如果您发送严格递减的
msgtyp
消息,则
msgtyp
等于
LONG_MIN
的提取将始终为您提供最后发送的消息
msgtyp
在这种情况下起着优先权的作用,1是最大的。

我认为这是不可能的

术语“队列”指先进先出。见维基百科:

队列(抽象数据类型)

在计算机科学中,队列(/ˈkjuː/KYEW)是一种特殊的抽象数据类型或集合,其中集合中的实体保持有序,对集合的主要(或唯一)操作是将实体添加到后端位置,称为排队,从前端终端位置移除实体,称为出列。这使队列成为先进先出(FIFO)数据结构


谢谢,这就是我要找的!这很棘手,但很有效。