C语言代码
// 从描述符 fd 读取 n 个字节
ssize_t readn(int fd, void *vptr, size_t n)
{
size_t nleft;
ssize_t nread;
char *ptr;
ptr = vptr;
nleft = n;
while (nleft > 0){
if ( (nread = read(fd, ptr, nleft)) < 0){
if (errno == EINTR)
nread = 0; //再次调用read()
else
return -1;
} else if (nread