我想在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 –