nikpez di nikpez
Ominide 738 punti

Message box

PGM PER L'INVIO
#include <string.h>
#include <sys/msg.h>

#define DIM_MAX 32
#define ID_CODA 0

#define DOMANDA_DI_INFORMATICA 1
#define DOMANDA_DI_SISTEMI 2

typedef struct {
long type;
char testo[DIM_MAX];
} message;


int main() {
message msg;

msg.type = DOMANDA_DI_INFORMATICA;
strcpy(msg.testo, "Cosa significa costruttore?");
msgsnd(ID_CODA, (void *) &msg, sizeof(msg.testo), IPC_NOWAIT);

msg.type = DOMANDA_DI_SISTEMI;
strcpy(msg.testo, "Cosa significa fork?");
msgsnd(ID_CODA, (void *) &msg, sizeof(msg.testo), IPC_NOWAIT);

return 0;
}

PGM PER LA RICEZIONE
#include <stdio.h>
#include <sys/msg.h>

#define DIM_MAX 32
#define ID_CODA 0

#define DOMANDA_DI_INFORMATICA 1

#define DOMANDA_DI_SISTEMI 2

typedef struct {
long type;
char testo[DIM_MAX];
} message;

int main() {
message msg;

int msgtype=DOMANDA_DI_INFORMATICA;
//int msgtype=DOMANDA_DI_SISTEMI;

int retval=msgrcv(ID_CODA, (void *) &msg, sizeof(msg.testo), msgtype, MSG_NOERROR | IPC_NOWAIT);

if (retval==-1)
printf ("Nessun messaggio disponibile\n");
else
printf("%s\n%d",msg.testo,retval);
return 0;
}

Registrati via email