Linux下的socket函数接口
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-27
* nbytes---the number of bytes written * Output : * Return : return the number of bytes written * Others : by jzk 2009.12.02 **********************************************************************/ ssize_t Write(int fd, const void *ptr, size_t nbytes) { ssize_t n; again: if((n = write(fd, ptr, nbytes)) == -1) { if(EINTR == errno) goto again; else return -1; } return n; } /********************************************************************* * Name : Close * Description : close a file descriptor * Input : fd---a socket that has been created * Output : * Return : * Others : by jzk 2009.12.02 **********************************************************************/ void Close(int fd) { if(close(fd) == -1) perr_exit("close error"); } /********************************************************************* * Name : Readn * Description : read from a file descriptor, * make sure read the enough bytes * Input : fd---a socket that has been created * ptr---the buffer which storage the bytes * nbytes---the number of bytes read * Output : * Return : return the number of bytes read * Others : by jzk 2009.12.02 **********************************************************************/ ssize_t Readn(int fd, void *vptr, size_t nbytes) { size_t nleft; size_t nread; char *ptr; ptr = vptr; nleft = nbytes; while(nleft > 0) { if((nread = read(fd, ptr, nleft)) < 0) { if(EINTR == errno) nread = 0; else return -1; } else if(nread == 0) break; nleft -= nread; ptr = nread; } return (nbytes-nleft); } /********************************************************************* * Name : Writen * Description : write to a file descriptor, * make sure write the enough bytes * Input : fd---a socket that has been created * ptr---the buffer which storage the bytes * nbytes---the number of bytes read * Output : * Return : return the number of bytes read * Others : by jzk 2009.12.02 **********************************************************************/ ssize_t Writen(int fd, const void *vptr, size_t nbytes) { size_t nleft; size_t nwritten; const char *ptr; ptr = vptr; nleft = nbytes; while(nleft > 0) { if((nwritten = write(fd, ptr, nleft)) <= 0) { if(nwritten < 0 && EINTR == e |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: select循环的用法举例下一篇: Linux网络的基本配置详解
关于Linux下的socket函数接口的所有评论