gpt4 book ai didi

c - Apache:多次 POST 后内容已损坏

转载 作者:行者123 更新时间:2023-11-30 19:08:38 26 4
gpt4 key购买 nike

如果 Apache 是新重启的,前几个 SUBMITS 没有问题。但经过几次测试后,它开始打印“v”的损坏版本。

int main() {
while (FCGI_Accept() >= 0) {
printf("Content-Type: text/html;\n\n");

int content_len;
content_len = atoi(getenv("CONTENT_LENGTH"));

char v[100];
fread(v,content_len,1,stdin);
printf("%s",v);

FCGI_Finish();
}
return 0;
}

更新:也许我需要“free(v);” ?重置它使用的内存或其他东西。显然它被存储在某个地方......并且需要将其清空。

也许这与我在 httpd.conf 中的 fcgi 设置有关?

最佳答案

fread() 不添加空终止符,您需要添加它。

fread(v,content_len,1,stdin);
v[content_len] = '\0';

否则,printf() 将打印字符串中超出读取范围的未初始化字符。

您还应该确保 v 足够大以容纳内容。您可以执行以下操作,而不是对大小进行硬编码:

char v[content_len+1];

您不需要free(v),因为free()只能与malloc()返回的指针一起使用、calloc()realloc()

关于c - Apache:多次 POST 后内容已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44766797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com