#include #include #include #include #include #include #include #define ROZ 512 struct some_data { long mtype; /* rodzaj komunikatu, musi by� > 0 */ char mtext[ROZ]; /* przekazywane dane */ }; int main(int argc, char *argv[]) { int msg_id; char tab[20]; char bufor[ROZ]; struct msgbuf some_data; int run=1; msg_id=msgget(45821,0666|IPC_CREAT); if(msg_id==-1) { fprintf(stderr,"blad shmget %d %s\n",errno,strerror(errno)); exit(1); } printf("Kolejka %d\n", msg_id); sprintf(tab,"ipcs -q -i %d",msg_id); system(tab); int i=0; while(run) { for(i;i<100;i++){ printf("Wprowadz tekst: "); fgets(bufor,ROZ,stdin); some_data.mtype = 1; strcpy(some_data.mtext, bufor); printf("%s", some_data.mtext); if(msgrcv()(msg_id, (void *)&some_data == -1) { fprintf(stderr, "msgrcv zawiodl blad %d - %s\n",errno, strerror(errno)); exit(EXIT_FAILURE); } if(strncmp(bufor,"koniec",3) == 0) run = 0; } } system("ipcs -q"); exit(0); }