/* Msg Sprejemnik */ #include #include #include #include #define MSG_TYPE 1 /* Sprejemam sporocila tega tipa */ struct MsgReceive_t{ long MsgType; char Message[128]; }; int main( argc, argv ) int argc; char **argv; { int MsgId, MsgReceiveSize, Sprejel; struct MsgReceive_t MsgReceive; int i; char *Pt; if( (MsgId = msgget( ftok("msgkey", 'k'), IPC_CREAT | 0644 )) == -1 ){ printf("%s: Napaka, msgget ni uspel\n", argv[0]); exit( 1 ); } MsgReceiveSize = sizeof(MsgReceive) - sizeof( long ); printf("Rec Size = %d\n", MsgReceiveSize ); for( ; ; ){ if((Sprejel=msgrcv( MsgId, &MsgReceive, 64, (long)MSG_TYPE, 0 )) == -1 ){ printf("%s: Napaka, msgrcv ni uspel\n", argv[0]); exit( 2 ); } printf("Sprejel %d bajtov\n", Sprejel ); printf("Tip sporocila: %4d \n", MsgReceive.MsgType ); for( i = 0; i < Sprejel; i++){ printf("Sporocilo: %x\n", MsgReceive.Message[i] ); } } msgctl( MsgId, IPC_RMID, 0 ); exit( 0 ); }