我想在C中实现一个非常基本的服务器,其中一部分构建HTTP头。为此,我编写了一个名为header_builder的类,它基本上为我构建了标题。一个此类的最基本的方法是append_header_line,如下图所示:strcat()不会退出
void append_header_line(const char *line, char *hdr) {
printf("Adding header line\n");
strcat(hdr, line);
printf("Line added. Adding ending.\n");
strcat(hdr, "\r\n");
printf("Success\n");
}
所有它的应该做的是粘性的“线”参数到“HDR”参数的终止,然后添加“\ r \ n“到最后。问题是第一个strcat调用从不退出。当我运行这段代码,它是所有说:
添加标题行
这意味着下面的线永远不会执行,我想不通为什么。有什么想法吗?
你可以显示调用它的代码吗?另外,你确定'strcat'永远不会退出而不是崩溃吗? – simonc
您确定您的目标缓冲区中有附加字节的空间 – TJD
*想到服务器依赖于'strcat'时发生Shudders *。 https://buildsecurityin.us-cert.gov/bsi-rules/home/g1/844-BSI.html –