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 + -
显示快捷键?