Count Messages in Message Queue

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Ahmad Jalil Qarshi

    Count Messages in Message Queue

    Hi,

    I have developed an application in C on IBM AIX 5.2. Its using
    multiple Message Queues to share data between different processes. I
    am using following functions to send/receive messages into/from
    message queues:

    int msgget(key_t, int);
    ssize_t msgrcv(int, void *, size_t, long int, int);
    int msgsnd(int, const void *, size_t, int);

    Now I want to calculate number of messages in each message queue at a
    specific time. So which function should I use? There is a function
    named "mq_getattr " to get queue attributes. Can this help out?

    Thanks in anticipation.

    Regards,

    Ahmad Jalil Qarshi
  • Jack Klein

    #2
    Re: Count Messages in Message Queue

    On Sun, 10 Aug 2008 16:27:50 -0700 (PDT), Ahmad Jalil Qarshi
    <Ahmad.Jalil.Qa rshi@gmail.comw rote in comp.lang.c:
    Hi,
    >
    I have developed an application in C on IBM AIX 5.2. Its using
    multiple Message Queues to share data between different processes. I
    am using following functions to send/receive messages into/from
    message queues:
    >
    int msgget(key_t, int);
    ssize_t msgrcv(int, void *, size_t, long int, int);
    int msgsnd(int, const void *, size_t, int);
    >
    Now I want to calculate number of messages in each message queue at a
    specific time. So which function should I use? There is a function
    named "mq_getattr " to get queue attributes. Can this help out?
    >
    Thanks in anticipation.
    >
    Regards,
    >
    Ahmad Jalil Qarshi
    Ahmed,

    This is not really the correct place to ask this question. Your
    question is not about the C language or standard C library, which are
    the topics here. Instead your question is about the use of a
    system-specific library, which is not part of the C language itself.

    I see a large number of newsgroups dedicated to IBM's AIX, although I
    do not know how active any of them are. For example:

    news:comp.sys.a ix, news:comp.unix. aix, and several in the family
    news:ibm.*.aix.

    The people most knowledgeable about AIX and the specific functions you
    are trying to use will most likely be found in one of these groups.

    I suggest you take a look at these groups, and select one or two to
    ask this question.

    --
    Jack Klein
    Home: http://JK-Technology.Com
    FAQs for
    comp.lang.c http://c-faq.com/
    comp.lang.c++ http://www.parashift.com/c++-faq-lite/
    alt.comp.lang.l earn.c-c++

    Comment

    • Jens Thoms Toerring

      #3
      Re: Count Messages in Message Queue

      Jack Klein <jackklein@spam cop.netwrote:
      On Sun, 10 Aug 2008 16:27:50 -0700 (PDT), Ahmad Jalil Qarshi
      <Ahmad.Jalil.Qa rshi@gmail.comw rote in comp.lang.c:
      I have developed an application in C on IBM AIX 5.2. Its using
      multiple Message Queues to share data between different processes. I
      am using following functions to send/receive messages into/from
      message queues:

      int msgget(key_t, int);
      ssize_t msgrcv(int, void *, size_t, long int, int);
      int msgsnd(int, const void *, size_t, int);

      Now I want to calculate number of messages in each message queue at a
      specific time. So which function should I use? There is a function
      named "mq_getattr " to get queue attributes. Can this help out?
      This is not really the correct place to ask this question. Your
      question is not about the C language or standard C library, which are
      the topics here. Instead your question is about the use of a
      system-specific library, which is not part of the C language itself.
      I see a large number of newsgroups dedicated to IBM's AIX, although I
      do not know how active any of them are. For example:
      news:comp.sys.a ix, news:comp.unix. aix, and several in the family
      news:ibm.*.aix.
      Since the functions named by Ahmad are all POSIX functions and thus
      probably not AIX-specific also e.g. comp.unix.progr ammer would be
      a reasonable choice of a group for asking the question.

      Regards, Jens
      --
      \ Jens Thoms Toerring ___ jt@toerring.de
      \______________ ____________ http://toerring.de

      Comment

      • Antoninus Twink

        #4
        Re: Count Messages in Message Queue

        On 10 Aug 2008 at 23:27, Ahmad Jalil Qarshi wrote:
        I have developed an application in C on IBM AIX 5.2. Its using
        multiple Message Queues to share data between different processes. I
        am using following functions to send/receive messages into/from
        message queues:
        >
        int msgget(key_t, int);
        ssize_t msgrcv(int, void *, size_t, long int, int);
        int msgsnd(int, const void *, size_t, int);
        >
        Now I want to calculate number of messages in each message queue at a
        specific time. So which function should I use? There is a function
        named "mq_getattr " to get queue attributes. Can this help out?
        No, but there's a function called msgctl() that you can use for that.

        int msgctl(int msqid, int cmd, struct msqid_ds *buf);

        If you call this function with IPC_STAT as the cmd argument, this will
        fill out the struct pointed to by buf with various bits of information
        from the kernel struct associated to the message queue. Check the
        documentation for your system to find out what this information consists
        of, but in particular POSIX guarantees the existence of a buf->msg_qnum
        field of type msgqnum_t, which contains the current number of messages
        in the queue.

        Comment

        Working...