msgrcv

    -1热度

    1回答

    这是我的代码,并在最后一部分,msgrecv不接受队列消息accourding正确preient,例如:10是最重要的接受然后键入= 20然后键入= 30 ...这是我的目标是以这种方式接受消息... 任何人都可以告诉我问题在哪里? 因为验收是accoures没有优先级.. 谢谢.. 即代码 #include <sys/msg.h> #include <unistd.h> #include

    0热度

    1回答

    我使用msgrcv函数从消息队列中读取消息。当我读取已知长度数据时,它工作正常。有些情况下我的消息长度是可变的。在这种情况下,我如何分配只需要的内存量,并从消息队列中读取消息,而不会丢失消息队列中的任何数据。请给出想法来解决这个问题。 说明: 在IBM消息队列中,当我们读取超出的长度数据时,它将消息的实际大小填充到我们传递mqget函数的结构中。像这样,是否有任何方法可以在消息队列中执行此操作。

    1热度

    1回答

    亲爱的朋友, 任何想法为什么msgrcv正在接收空白缓冲区? 下面是代码: enter code here #include <sys/msg.h> #include <unistd.h> #include <sys/types.h> #include <stdio.h> #include <string.h> typedef struct mymsg { long mty

    0热度

    1回答

    我有两个程序通过IPC队列来回发送和接收消息。但是,有时msgrcv函数会收到一条空白消息,而不是接收实际通过队列发送的内容。我已经注释了一个我认为应该可以工作的修复程序,但我想在此查看,看看这是否是使用msgrcv和msgsnd的正确方法。 msgrcv: int readqueue(int qid, long type, char *msg) { int retval;

    0热度

    3回答

    我需要知道如果消息嵌入在IPC队列中。 在实践中,我需要知道,当一个调用msgrvc函数时,我得到的第一个消息进入队列或选定的消息是随机的。 现在,我提出这个问题,因为当内部的一部分代码msgrcv得到一个消息,它不是针对该代码,我通常要求消息e读取队列中的以下消息。 什么我想知道的就是给定,例如,他下面的消息 MSGA,MSGB,MSGC ,存储队列 内如果读MSGA和reque它,我将得到队列

    0热度

    2回答

    您好我正在使用一些共享内存在不同的进程读取和写入数据。我正在使用消息队列来存储数据在读取和写入操作之间发生更改的消息。 /* struct that defines a message */ struct msgbuf{ long mtype; /* must be positive */ int childId; //ID of child sending messa

    0热度

    1回答

    我有一个消息队列,我从中获取消息循环。问题是我不知道如何退出循环。 msgrcv返回类型size_t,所以它继续前进。我应该比较什么值的返回值,所以我可以退出循环? while(msgrcv(msqid, &msgreceived, sizeof(msgreceived), BUFFER_CHANGED, 0) != -1){ printf("%d %d %d %d ",msgrecei

    0热度

    1回答

    我有更多的三个定时器运行从主要如下所示,我已经定义了一个主要部分的消息队列。我的计时器到期时间在10(最大)。 为什么当计时器到期时“msgrcv”给出错误,如“中断的系统调用”? timer_t timer1 = create_timer(TT_SIGUSR1); install_sighandler(TT_SIGUSR1, signal_handler); set_time

    1热度

    2回答

    我遇到了问题。 我有一个过程,我们假设它是一个客户端,一个叫做服务器的进程。客户端和服务器之间通过相同的队列进行通信。假设一个客户向服务器发送一个消息(请求),所以服务器对它进行处理,并且应该向客户发回消息确认或失败。假设确认有一个long type = 1500101,并且失败有long type = 1500102。 是否有可能(在C中使用msgrcv)等待只有这两种类型的消息(客户端)? 如