标签:linux系统 turn unsigned ptr 网络 数据 函数 char ret
readn函数功能:在网络编程的读取数据中,通常会需要用到一个读指定字节才返回的函数,linux系统调用中没有给出,需要自己封装。
readn实现代码:
int readn(int fd, void *vptr, size_t n) { size_t nleft = n; //readn函数还需要读的字节数 ssize_t nread = 0; //read函数读到的字节数 unsigned char *ptr = (char *)vptr; //指向缓冲区的指针 while (nleft > 0) { nread = read(fd, ptr, nleft); if (-1 == nread) { if (EINTR == errno) nread = 0; else return -1; } else if (0 == nread) { break; } nleft -= nread; ptr += nread; } return n - nleft; }
标签:linux系统 turn unsigned ptr 网络 数据 函数 char ret
原文地址:http://www.cnblogs.com/yongqiang/p/6145498.html