Omega 2 and mqueue (Messaging)

  • Hi -

    I have just received my Onion Omega 2 and trying to run some of my apps on it.
    I write apps the rely on mqueue for communications between threads. mqueue is usually provided for different distros of embedded Linux/derivatives: Ubuntu, Debian QNX etc.
    For the Omega distro, mqueue seems to be missing? Does anyone know how to compile/link support for this and/or add support to the Linux version coming with Omega. I find that mqueue is an important tool in communication.

    Any help would be much appreciated! Thanks to everyone that provides the excellent tool chains for the new Omega! Much appreciated!



  • Some more info.
    The error received on Onion is:
    ENOSYS : "Function not implemented"

    Compiling, linking and running the same application for Ubuntu 64 bit on VM works using the following:
    g++ *.cpp -Wall -lrt -v

    #include <errno.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/types.h> 
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <mqueue.h>
    int main (int argc, char* argv[])
    mqd_t mq;
    struct mq_attr attr;
    // Initialize the queue attributes
    attr.mq_flags = 0;
    attr.mq_maxmsg = 50;
    attr.mq_msgsize = 2048; //MAX_SIZE;
    attr.mq_curmsgs = 0;
    // Create the message queue
    mq = mq_open("/mq", O_CREAT | O_RDWR, S_IRUSR | S_IWUSR, &attr); 
    if (((mqd_t)-1 == mq))
    	int errnum = errno;
    	printf("main(): Failed creating message Queue: %d, %s!\n", errnum, strerror(errnum));
    // Cleanup Message Queue
     return 0; 


Log in to reply

Looks like your connection to Onion Community was lost, please wait while we try to reconnect.