这是
fgets()
的官方原型:
char *fgets(char *str, int n, FILE *stream);
为什么要指定尺寸?是为了防止某种缓冲区溢出吗?还是这只是一个设计缺陷?
我认为这是由
gets()
导致缓冲区溢出和程序段错误的倾向引起的,但这只是我的猜测。
无论如何,这可能与
fgets()
是一个文件函数有关,但我也不知道。
这是在最近关于缓冲区溢出的视频的背景下,在安全背景下,这是否存在风险?大小是否是一个限制,并且在这种情况下容易出现段错误?
count - 要写入的最大字符数(通常是 str 的长度)
count
是您在问题中命名为 n
的参数。
所以基本上答案是肯定的,这是为了防止填充时缓冲区溢出
str
。