来自GNU C 编程教程:
(
fgets
"file get string") 函数类似于gets 函数。此功能已弃用——这意味着它已过时,强烈建议您不要使用它——因为它很危险。这很危险,因为如果输入数据包含空字符,您无法分辨。fgets
除非您知道数据不能包含空值,否则不要使用。不要使用它来读取用户编辑的文件,因为如果用户插入空字符,您应该正确处理它或打印明确的错误消息。如果可以,请始终使用getline
orgetdelim
代替。fgets
我认为fgets
函数在遇到\0
or时会停止\n
;为什么本手册页建议在fgets
正确处理输入时空字节是“危险的”?getline
此外,和之间有什么区别fgets
,该功能在C99或未来的 C 标准中是否fgets
真正被视为已弃用?