gpt4 book ai didi

c - fprintf 有长度限制吗?

转载 作者:行者123 更新时间:2023-11-30 18:36:46 25 4
gpt4 key购买 nike

A有下一个c ansi代码,Linux版本2.6.32-431.11.2.el6.x86_64

    fprintf(fpOut, "%s",cBuffer);

其中 cBuffer 是指向 char 的指针,如

    int bfnAddOutputFile(FILE *fpOut, char *cBuffer){/**/

fprintf(fpOut, "%s",cBuffer);

//code

return ( TRUE );
}

当它执行fprintf时,生成一个核心转储

    Program received signal SIGSEGV, Segmentation fault.
0x00000038b2e6723e in fputs () from /lib64/libc.so.6

发送给 fprintf 的字符有一个最大长度,如果是的话,这个数字是多少?

最佳答案

cBuffer 可能不包含空终止符,这使得 fprintf 超出内存范围。

输出 C 字符串时,printf 系列函数仅在遇到空终止符('\0')时停止并且可以继续下去,直到它们尝试输出一 block 不属于您的程序的内存,这会导致段错误。

关于c - fprintf 有长度限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40247900/

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