23,120
社区成员
发帖
与我相关
我的任务
分享
int readn(void *vptr, int n)
{
int nleft;
int nread;
char *ptr;
ptr = vptr;
nleft = n;
while (nleft > 0)
{
if ((nread = read(m_socket, ptr, nleft)) < 0)
{
if (errno == EINTR)
{
nread = 0;
}
else
{
return (-1);
}
}
else if (nread == 0)
{
break;
}
nleft -= nread;
ptr += nread;
}
return (n-nleft);
}