Az msgrcv függvény meghiúsul, ha: [E2BIG] Az mtext értéke nagyobb, mint az msgsz, és (msgflg & MSG_NOERROR) 0. [EACCES]
Az Msgrcv blokkolja?
Az msgsnd és msgrcv funkciók blokkoló vagy nem blokkoló műveletként is végrehajthatók. A nem blokkoló műveletek lehetővé teszik az aszinkron üzenetátvitelt – a folyamat nem függeszti fel az üzenet küldése vagy fogadása miatt.
Az msgrcv eltávolítja az üzenetet a sorból?
A msgrcv rendszerhívás eltávolít egy üzenetet az msqid által megadott sorból, és az msgp által mutatott pufferbe helyezi. Az msgsz argumentum megadja a maximális méretet bájtban az msgp argumentum által mutatott struktúra tag mtext számára.
Hogyan működik az msgrcv?
Az msgrcv függvény egy üzenetet olvas be az msqid paraméter által megadott üzenetsorból, és elhelyezi azt a felhasználó által meghatározott pufferben, amelyre az msgp paraméter mutat. Az msgp paraméter egy felhasználó által meghatározott pufferre mutat, amelynek a következőket kell tartalmaznia: Long int típusú mező, amely meghatározza az üzenet típusát.
Mit ad vissza az msgrcv?
RETURN VALUE
A sikeres befejezés után az msgrcv egy értéket ad vissza, amely megegyezik az mtext pufferben ténylegesen elhelyezett bájtok számával. Ellenkező esetben nem érkezik üzenet, az msgrcv (ssize_t)-1 értéket ad vissza, és az errno értéke jelzi a hibát.