Я использую неблокирующий клиентский сокет для чтения данных.
Иногда чтение возвращает EAGAIN.
Как правильно обращаться с этим?
В данный момент мой код повторяется сразу навсегда.Немного беспокоюсь об этом, поскольку существует вероятность бесконечного цикла, если read продолжает возвращать EAGAIN.
s = socket(...);
ioctl(s, FIONBIO, ON);
select(s+1, r, NULL, e, NULL);
if (FD_ISSET(s, r)) {
ret = read(...)
ret = read(...)
ret <---- is EAGAIN sometimes
}