myrdwr.h

来自「基于socket的简单通讯程序」· C头文件 代码 · 共 44 行

H
44
字号
#include	<errno.h>
#include	<stdio.h>
#include	<fcntl.h>

ssize_t readn(int fd,void * vptr,size_t n)
{
	ssize_t nleft;
	ssize_t nread;
	char *ptr=vptr;
	nleft=n;
	while(nleft>0){
		if((nread=read(fd,ptr,nleft))<0){
			if(errno==EINTR)
				nread=0;
			else return(-1);
		}
		else if(nread==0)
			break;
		nleft=nleft-nread;
		ptr+=nread;
	}
	
	return(n-nleft);

}

ssize_t writen(int fd,const void * vptr,size_t n)
{
	ssize_t nleft;
	ssize_t nwrite;
	const char *ptr=vptr;
	nleft=n;
	while(nleft>0){
		if((nwrite=write(fd,ptr,nleft))<0){
			if(errno==EINTR)
				nwrite=0;
			else return(-1);
		}
		nleft=nleft-nwrite;
		ptr+=nwrite;
	}
	return(n-nleft);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?