gets()
函数是一个来自 C 语言标准库的函数,用于从输入流(如标准输入)读取一行文本
gets()
函数没有提供任何方式来限制读取的字符数。这意味着如果输入的行超过了分配给接收字符串的内存大小,它将导致缓冲区溢出,从而可能引发安全漏洞。gets()
函数被认为是不安全的。在现代编程实践中,应避免使用不安全的函数。gets()
函数标记为弃用,并在 C11 中将其移除。这意味着在新的代码中,不应再使用 gets()
函数。fgets()
或 gets_s()
(C11 中引入的安全版本)。这些函数允许指定要读取的最大字符数,从而防止缓冲区溢出。因此,在 Linux 和其他系统中,建议避免使用 gets()
函数,并使用更安全的替代方案。