0

我无法使用 perfixes 机制在 QNX 中实现进程之间的消息传递。我尝试了很多方法,但都是徒劳的。

       #define PREFIX_POSITION "stat_pos"

        char receiveBuffer = 0;
        char replyBuffer[25];
        name_attach_t *positionPrefix;
        dispatch_t *dpp;
        int rcvid;

        dpp = dispatch_create();

        if (positionPrefix = name_attach(NULL, PREFIX_POSITION, 0) == NULL){
            printf("prefix - null\n");
            return EXIT_FAILURE;
        }

        positionPrefix = name_attach(dpp, PREFIX_POSITION, 0);

        while(true){
            rcvid = MsgReceive(positionPrefix->chid, &receiveBuffer, sizeof(receiveBuffer), NULL);
            switch(receiveBuffer){
                case 'Q':
                    //Do something
                    break;
                case 'H':
                    //Do something
                    break;
                case 'D':
                    //Do something
                    break;
                case 'S':
                    //Do something
                    break;
            }
            MsgReply(rcvid, REPLY_INDEX, &replyBuffer, sizeof(replyBuffer));
            receiveBuffer = 0;
        }

        return 0;
    }

name_attach ()函数总是返回 null。可能是什么问题呢?

4

0 回答 0