Eu acho que sua melhor aposta, é escrever um programa que chama ftok, para obter a chave, algo como:
#include <stdio.h>
#include <stdlib.h>
#include <sys/ipc.h>
int main(int argc, char **argv)
{
unsigned long long key;
if (argc != 3) {
printf("Usage %s: [path] [id]\n" ,argv[0]);
return 1;
}
key = ftok(argv[1], atoi(argv[2]));
printf("%llx\n", key);
return 0;
}
Depois de ter essa chave, você pode usá-la para remover a fila de mensagens: ipcrm -Q <key>
. Alternativamente, você pode modificar o programa acima para chamar msgctl(3)
para remover a fila de mensagens.