gets()
函數(shù)是一個來自 C 語言標準庫的函數(shù),用于從輸入流(如標準輸入)讀取一行文本
gets()
函數(shù)沒有提供任何方式來限制讀取的字符數(shù)。這意味著如果輸入的行超過了分配給接收字符串的內存大小,它將導致緩沖區(qū)溢出,從而可能引發(fā)安全漏洞。gets()
函數(shù)被認為是不安全的。在現(xiàn)代編程實踐中,應避免使用不安全的函數(shù)。gets()
函數(shù)標記為棄用,并在 C11 中將其移除。這意味著在新的代碼中,不應再使用 gets()
函數(shù)。fgets()
或 gets_s()
(C11 中引入的安全版本)。這些函數(shù)允許指定要讀取的最大字符數(shù),從而防止緩沖區(qū)溢出。因此,在 Linux 和其他系統(tǒng)中,建議避免使用 gets()
函數(shù),并使用更安全的替代方案。