在 CI 中,我希望读取页面的 html,但我希望保存数据的缓冲区是动态的。我知道我将不得不通过循环和使用来做到这一点,realloc
但我不太确定我将如何去做。假设我的套接字 ( sock
) 已经打开,请考虑以下事项:
char *buffer = ???, *tmp; //just my guess I'm fairly certain buffer cannot be NULL considering my recv loop...
int q = 0, c;
int i = 1; //buffer size
while(q < i)
{
c == recv(sock, buffer + q, i - q, 0);
if(c == SOCKET_ERROR) break;
i += c;
tmp = realloc(buffer, i * sizeof(char));
//if(!tmp) /*not important right now I can add error handling later*/;
buffer = tmp;
q += c;
}
这将是我对如何实现目标的最佳猜测,但我非常怀疑这会奏效,我只需要一些见解或纠正。