readcrlf.c

来自「一个很好的unix网络编程框架」· C语言 代码 · 共 39 行

C
39
字号
#include "../etcp.h"/* readcrlf - read a CR/LF terminated line */int readcrlf( SOCKET s, char *buf, size_t len ){	char *bufx = buf;	int rc;	char c;	char lastc = 0;	while ( len > 0 )	{		if ( ( rc = recv( s, &c, 1, 0 ) ) != 1 )		{			/*			 *  If we were interrupted, keep going,			 *  otherwise, return EOF or the error.			 */			if ( rc < 0 && errno == EINTR )				continue;			return rc;		}		if ( c == '\n' )		{			if ( lastc == '\r' )				buf--;			*buf = '\0';			/* don't include <CR><LF> */			return buf - bufx;		}		*buf++ = c;		lastc = c;		len--;	}	set_errno( EMSGSIZE );	return -1;}

⌨️ 快捷键说明

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