Mam problem z utworzeniem kolejki komunikatów standardu posix. Muszę zrobić do tego także osobną bibliotekę funkcji do obsługi kolejek komunikatów.

Fragment kodu z biblioteki:

mqd_t kolejka(const char *name, struct mq_attr *attr)
{
	mqd_t des;
	des = mq_open(name, O_CREAT | O_RDWR, 0644, attr);
	return des;
}

Oraz fragment z głównego programu:

	struct mq_attr atr;
	const char *nazwa="kolejka";
	atr.mq_maxmsg=20;
	atr.mq_msgsize=400;

	mqd_t des;
	des = kolejka(nazwa, &atr);

Program się kompiluje, jednak przy uruchomieniu wyskakuje błąd "invalid argument".

Mam też pytanie co do samej struktury atrybutów kolejki. Nie muszę już jej pisać w swojej bibliotece, gdyż jest ona zdefiniowana w bibliotece <mqueue.h> i mogę z niej korzystać, tak?
Z góry dziękuję za pomoc :)