为什么 gets() 被弃用? [复制]

2024-03-06

使用时gets()在我的代码中,编译器大喊

warning: the 'gets' function is dangerous and should not be used.`

and

warning: ‘gets’ is deprecated (declared at /usr/include/stdio.h:638)
[-Wdeprecated-declarations]

有什么具体原因吗?


有人可以解释为什么编译器会这样显示......?

是的,因为,gets()函数很危险,因为它存在缓冲区溢出问题。任何人都应该避免使用它。

Also, regarding the warning with -Wdeprecated-declarations, gets() is no longer a part of C standard [C11 onwards]. So, C libraries compilers are not bound to support that any more. It can be removed in future. To warn the developer about the potential pitfall and to discourage the further usage of gets(), the compiler## emits the warning message.


(##) To be pedantic, the warning is not generated by the compiler (gcc) all by itself, rather caused by a pragma or attribute on the implementation of gets() in the glibc that causes the compiler to emit the warning. [Courtesy, FUZxxl, from the dupe answer.]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 gets() 被弃用? [复制] 的相关文章

随机推荐

  • 从 Python 生成图形的最简单方法? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 Python 处理填充有我想要运行计算的数据的 CSV 文件 然后绘制图表 我正在寻找一个可
  • 在 C++ 中传递对象所有权

    表明一个对象想要获得另一个对象的所有权的最佳方式是什么 到目前为止 我一直在使用std auto ptr在公共接口中 因此客户端知道该接口想要获取所传递对象的所有权 然而 最新的 GCC 告诉我auto ptr已弃用 所以我想知道推荐什么
  • 如何使用 VisPy 库实时绘图?

    我编写了一个脚本来模拟流行病的演变 使用图表和散点图 我尝试了几个库来实时显示结果 8 个国家 x 500 个粒子 Matplotlib 不够快 PyQtGraph 更好但仍然不够快 OpenGL 很好 但我没有找到如何在 2D 中有效地使
  • 如何在屏幕旋转时保持recyclerView的滚动位置

    我正在使用 gridlayoutManager 填充 recyclerView 现在我想保存屏幕旋转的滚动位置 我尝试使用 onSaveInstanceState 和 onRestoreInstanceState 来执行此操作 如本文所示
  • WPF DataGrid - 如何在按下 Tab 键后将键盘焦点移动到新添加的行

    如果我们在最后一行的最后一列上按 Tab 键 WPF DataGrid 将添加一个新行 但添加新行后 焦点将移至网格的顶行 我们如何确保焦点移动到新行的第一列 你可以尝试类似的东西 this SelectRowCell this Items
  • php“curl”不起作用[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 从 Excel 工作簿 VSTO 调用 Excel 加载项函数

    我想在 Excel Add In 2007 解决方案中创建一个方法 可以从我的 Excel Workbook 2007 解决方案中调用该方法 我解释一下 我想从Excel工作簿2007解决方案的代码隐藏文件中调用Excel加载项的方法 我不
  • 读取大型制表符分隔文件分块时出现异常

    我有一个 350MB 制表符分隔的文本文件 如果我尝试将其读入内存 则会出现内存不足异常 所以我正在尝试一些类似的事情 即只阅读几列 import pandas as pd input file and path r C Christian
  • Python 256位哈希函数,带数字输出

    我需要一个具有 256 位输出 如 long int 的哈希函数 首先 我认为我可以使用 hashlib 中的 SHA256 但它有一个字符串输出 我需要一个数字来计算 将 32 字节字符串转换为 long 也可以 但我没有找到任何东西 在
  • 快速文件复制并取得进展

    我正在为 Linux 编写一个 SDL 应用程序 它可以从控制台运行 无 X 服务器 我拥有的一个功能是文件复制机制 它将特定文件从 HDD 复制到 USB 闪存设备 并在 UI 中显示此复制的进度 为此 我使用简单的 while 循环并按
  • 当嵌入类型具有 UnmarshalJSON 时,json.Unmarshal 失败

    我正在尝试解组具有嵌入类型的结构 当嵌入类型具有 UnmarshalJSON 方法时 外部类型的解组失败 https play golang org p Y Tt5O8A1Q https play golang org p Y Tt5O8A
  • 编辑pip安装的包

    我正在尝试编辑通过 pip 安装的一个名为 py mysql2pgsql 的包 将数据库从 mysql 转换为 postgre 时出现错误 就像this https stackoverflow com questions 26008398
  • 保留 string_agg 内部的不同顺序

    Mysql函数 with recursive locpais as select l id l nome l tipo tid lp pai from loc l left join locpai lp on lp loc l id whe
  • 根据类别对表列的所有值求和

    我正在尝试根据特定类检索 td 中所有值的总和 该代码不会抛出任何错误 但我的总和始终为 0 数值是否必须以特定方式指定 我在这里看到了一些其他答案 从哪里模仿了代码 我没有看到我的和他们的有任何真正的区别 所以我很困惑为什么我的不起作用
  • 如何等待ShellExecute运行?

    我设法在 VC 中使用 ShellExecute 来启动文档 现在我希望运行一个接收一些参数的命令行工具 并在后台运行 隐藏 而不是最小化 并让它阻止我的程序流程 以便我能够等待它完成 如何更改命令行 ShellExecute NULL o
  • 如何设置xAxis标签之间的间距

    我遇到了图表显示的问题 你可以从图片中看到它 旧版本的图表有apispaceBetweenLabels设置标签之间的间距 我只找到apispaceMax and spaceMin在最新版本中 我尝试使用它们来设置标签之间的空间 但失败了 我
  • NLTK Python 中的词义消歧

    我是 NLTK Python 的新手 我正在寻找一些可以进行词义消歧的示例应用程序 我在搜索结果中有很多算法 但没有示例应用程序 我只是想传递一句话 并想通过参考wordnet库来了解每个单词的含义 谢谢 我在 PERL 中找到了类似的模块
  • 为 Node / MongoDB 应用程序播种的最佳方法是什么?

    所以 我是 MEAN 堆栈的新手 在尝试为 MongoDB 播种时遇到了困难 我正在使用 Mongoose 与数据库进行通信 并且有大量文档表明我应该能够使用填充的 JSON 文件进行播种 我尝试过的 节点 mongo 种子 https w
  • 不使用 oledb 将 Excel 工作表数据导入到 datagrid

    在我的基于 Windows 的应用程序中 C 我想导入 Excel 工作表以在 DatatGridView 中显示其数据 我不想使用 oledb any Help using Excel Microsoft Office Interop E
  • 为什么 gets() 被弃用? [复制]

    这个问题在这里已经有答案了 使用时gets 在我的代码中 编译器大喊 warning the gets function is dangerous and should not be used and warning gets is dep