700a662a23a4117976d6ccade1e36ba403a4b5b2
[perl.git] / do / msgsnd
1 int
2 do_msgsnd(arglast)
3 int *arglast;
4 {
5 #ifdef HAS_MSG
6     register STR **st = stack->ary_array;
7     register int sp = arglast[0];
8     STR *mstr;
9     char *mbuf;
10     int id, msize, flags;
11
12     id = (int)str_gnum(st[++sp]);
13     mstr = st[++sp];
14     flags = (int)str_gnum(st[++sp]);
15     mbuf = str_get(mstr);
16     if ((msize = mstr->str_cur - sizeof(long)) < 0) {
17         errno = EINVAL;
18         return -1;
19     }
20     errno = 0;
21     return msgsnd(id, (struct msgbuf *)mbuf, msize, flags);
22 #else
23     fatal("msgsnd not implemented");
24 #endif
25 }
26