Die msgrcv-funksie sal misluk as: [E2BIG] Die waarde van mtext is groter as msgsz en (msgflg & MSG_NOERROR) is 0. [EACCES]
Blokkeer Msgrcv?
Die msgsnd- en msgrcv-funksies kan uitgevoer word as óf blokkerende óf nie-blokkerende bewerkings. Nie-blokkerende bewerkings maak voorsiening vir asynchroniese boodskapoordrag -- die proses word nie opgeskort as gevolg van die stuur of ontvangs van 'n boodskap nie.
Verwyder msgrcv die boodskap uit die tou?
Die msgrcv-stelseloproep verwyder 'n boodskap uit die tou gespesifiseer deur msqid en plaas dit in die buffer waarna bsgp verwys. Die argument msgsz spesifiseer die maksimum grootte in grepe vir die lid mteks van die struktuur waarna die msgp argument verwys.
Hoe werk bsgrcv?
Die msgrcv-funksie lees 'n boodskap uit die boodskapwaglys gespesifiseer deur die msqid-parameter en plaas dit in die gebruikergedefinieerde buffer waarna die msgp-parameter verwys word. Die msgp-parameter wys na 'n gebruikergedefinieerde buffer wat die volgende moet bevat: 'n Veld van tipe long int wat die tipe boodskap spesifiseer.
Wat gee bsgrcv terug?
TERUGWAARDE
Na suksesvolle voltooiing gee boodskap 'n waarde gelyk aan die aantal grepe wat werklik in die buffer geplaas is mtext. Andersins sal geen boodskap ontvang word nie, msgrcv sal terugkeer (ssize_t)-1 en errno sal gestel word om die fout aan te dui.