系統 - VxWorks - C/C++ - Message Queue



參考資訊:
https://forums.windriver.com/t/vxworks-software-development-kit-sdk/43
https://d13321s3lxgewa.cloudfront.net/downloads/wrsdk-vxworks7-docs/2309/README_qemu.html
https://www.ee.torontomu.ca/~courses/ee8205/Data-Sheets/Tornado-VxWorks/vxworks/ref/msgQLib.html#msgQReceive

main.c

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <msgQLib.h>

int main(int argc, char **argv)
{
    MSG_Q_ID id = NULL;
    char buf[100] = {0};

    id = msgQCreate(10, 100, MSG_Q_FIFO);
    printf("Msg ID %p\n", id);

    if (id) {
        buf[0] = 0x12;
        buf[1] = 0x23;
        msgQSend(id, buf, sizeof(buf), WAIT_FOREVER, MSG_PRI_NORMAL);

        memset(buf, 0, sizeof(buf));
        msgQReceive(id, buf, sizeof(buf), WAIT_FOREVER);

        printf("Ret 0x%x, 0x%x\n", buf[0], buf[1]);
        msgQDelete(id);
    }
    return 0;
}

編譯

$ wr-cc main.c -o main

執行

-> cmd

[vxWorks *]# app
    Msg ID 0x10038
    Ret 0x12, 0x23