#include<sys/types.h>
#include<sys/ipc.h>
#include<sys/msg.h>
#include<stdio.h>

struct msqid_ds *buf;	//zmienna przez ktora przekazywane sa parametry operacji

struct msgbuf {	//struktura komunikatu
	long mtype;	//typ komunikatu
	char *mtext;	//tresc komunikatu
};

struct msgbuf bufor1, bufor2;



int main()
{
	int id_msgget;	//identyfikator kolejki
	char *wiadomosc = "message ...";	//tresc komunikat
	id_msgget = msgget(IPC_PRIVATE, IPC_CREAT|0600);
	printf("Id msgget %d\n", id_msgget);

	bufor1.mtype = 1;	//typ komunikatu
	bufor1.mtext = wiadomosc;	//tresc komunikatu

	int rozmiar = sizeof(struct msgbuf) - sizeof(bufor1.mtype);	//rozmiar komunikatu

	int wysylanie = msgsnd (id_msgget, &bufor1, rozmiar, 0);	//wyslanie komunikatu
	if (wysylanie == -1)
		perror("Blad wyslania");

	msgrcv(id_msgget, &bufor2, rozmiar, 1, 0);	//odebranie komunikatu
	printf("Odebrany komunikat: %s\n", bufor2.mtext);

	msgctl(id_msgget, IPC_RMID, buf);	//usuniecie kolejki
	return 0;
}

taki program napisalem w vimie. Czy moglby ktos podzielic go na funkcje zeby wszystko nie bylo w INT ? Bo moj doktorek sie sapie o to a ja nie bardzo wiem jak i nigdy nie dziala. Dzieki za pomoc.