Se você tiver sorte o suficiente para usar HP-UX , o comando pipcs
(PDF) executa o equivalente POSIX ao comando SysV IPC ipcs
. Infelizmente, nunca apareceu para outros sistemas operacionais. O pacote atual (março de 2013) util-linux que fornece ipcs
apenas menciona as linhas do POSIX .
Se você tem mqueue
montado em /dev/mqueue
, o que é suportado é simplesmente ler a fila como um arquivo:
user@linux $ cat /dev/mqueue/myQ
QSIZE:0 NOTIFY:0 SIGNO:0 NOTIFY_PID:0
O QSIZE
é, infelizmente, o tamanho em bytes, não mensagens; no Linux existe (ainda) nenhum campo de contagem de mensagens - ao contrário do FreeBSD que fornece um valor CURMSG
:
user@freebsd $ cat /mnt/mqueue/myQ
QSIZE:0 MAXMSG:32 CURMSG:0 MSGSIZE:1024
Então a resposta deve ser "montar o mqueue FS e usar cat
", mas não é: (
(Montar o mqueue FS não é um pré-requisito para usar a API do MQ, apenas permite que você faça algumas coisas "tudo é um arquivo".)
Se você realmente precisa monitorar filas, o livro A Interface de Programação Linux tem o código-fonte C para várias ferramentas CLI para criar, inspecionar e usar filas de mensagens. Felizmente, o capítulo 52 do livro que cobre este tópico está disponível gratuitamente para download. Veja pmsg_getattr.c
.
O código de referência canônica da Unix Network Programming (Vol 2) 2nd Ed. de Stephen (1999) está disponível aqui , ele fornece, entre outras coisas, mqgetattr
, que também fará o trabalho (embora seja necessário massagear algumas linhas no nível superior config.h
, o #define
's para vários uint
tipos conflito com cabeçalhos de sistema Unix contemporâneos).
Há também Ruby , Perl e módulos TCL para isso, o Ruby vem com uma ferramenta CLI posix-mq-rb
.