Листинг 6.20. Функция-обертка Mesg_recv, обрабатывающая прерванный системный вызов
//svmsgmpxnq/mesg_recv.с
10 ssize_t
11 Mesg_recv(int id, struct mymesg *mptr)
12 {
13 ssize_t n;
14 do {
15 n = mesg_recv(id, mptr);
16 } while (n == –1 && errno == EINTR);
17 if (n == –1)
18 err_sys("mesg_recv error");
19 return(n);
20 }