首页  > 后端开发 > c言语gets函数,用法、危险与代替计划

c言语gets函数,用法、危险与代替计划

后端开发 2024-12-30 7

`gets` 函数是 C 言语规范库中的一个函数,用于从规范输入(通常是键盘)读取一行文本,直到遇到换行符或文件完毕标志。它将读取的字符串存储在供给的缓冲区中,并主动在字符串结尾增加一个空字符 以构成一个 nullterminated string。

因为 `gets` 函数存在安全危险,因为它不查看方针缓冲区的巨细,可能会导致缓冲区溢出,然后引发安全问题。因而,C11 规范现已将其标记为过期,并且在许多现代编译器中默许禁用。

在 C99 和更早的规范中,`gets` 函数的界说如下:

```cchar gets;```

其间,`str` 是一个指向字符数组的指针,该数组用于存储读取的字符串。

因为 `gets` 的安全问题,主张运用 `fgets` 函数作为代替,它答应指定缓冲区的巨细,然后防止缓冲区溢出的危险。`fgets` 函数的界说如下:

```cchar fgets;```

其间,`str` 是用于存储读取的字符串的缓冲区,`n` 是缓冲区的最大巨细,`stream` 是指向 `FILE` 目标的指针,该目标指定了要读取的输入流(通常是 `stdin`)。

深化解析C言语中的gets()函数:用法、危险与代替计划

在C言语编程中,gets()函数是一个用于从规范输入读取字符串的常用函数。因为其潜在的安全危险,现代编程实践中已逐步被其他更安全的函数所代替。本文将深化探讨gets()函数的用法、潜在危险以及怎么运用更安全的代替计划。

gets()函数的原型如下:

char gets(char str);

该函数从规范输入(通常是键盘)读取一行数据,直到遇到换行符或EOF(文件完毕标志)。读取的数据存储在由参数`str`指定的字符数组中,并在字符串结尾主动增加一个空字符`\\0`作为完毕标志。

以下是一个简略的gets()函数运用示例:

include

int main() {

char str[100];

printf(\


Copyright © 2016-2028零基础教程 Rights Reserved. XML地图