#include #include #include #include #include #include #define FLAG 0622 int main(void) { struct mymsg { long mtype; char mtext[512]; }; struct mymsg messaggi; key_t chiave; int queue_id; if((queue_id = msgget(IPC_PRIVATE, IPC_CREAT | FLAG)) < 0) { printf("\n error creating the queue\n"); exit(0); } printf("\n Ho Creato una coda con id = %d\n", queue_id); if(msgrcv(queue_id, &messaggi, 512, 100, 0) < 0) { if(errno = ENOMSG) printf("\n Nessun messaggio per me\n"); } else printf("\n Ho ricevuto il messaggio (100) \n \t \t--%s--\n", messaggi.mtext); if(msgrcv(queue_id, &messaggi, 512, -2, IPC_NOWAIT) < 0) { if(errno = ENOMSG) printf("\n Nessun altro messaggio per me\n"); } else printf("\n Ho ricevuto il messaggio (-50) \n \t \t--%s--\n", messaggi.mtext); if(msgctl(queue_id, IPC_RMID, NULL)) { printf("\n Non sono riuscito ad eliminare la coda\n"); exit(0); } printf("\n Coda rimossa\n"); }