/* Read “n” bytes from a descriptor. */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 = (-1);} else if (nread == 0)break;/* EOF */nleft -= nread;ptr += nread;}return(n – nleft);/* return >= 0 */}/* end readn */ssize_tReadn(int fd, void *ptr, size_t nbytes){ssize_tn;if ( (n = readn(fd, ptr, nbytes)) < 0)err_sys(“readn error”);return(n);}
使用的时候使用函数Readn,Readn是个包裹函数,编程的时候就不需要对函数进行错误处理了。
,少一点预设的期待,那份对人的关怀会更自在