小编Jen*_*fer的帖子

没有道歉的gets()

我在自己的编程中经常使用gets()函数。我知道:

  • 输入字符串可能溢出分配的空间

  • 在某些环境中,以上内容可用于创建漏洞利用程序

  • 可以使用fgets()代替读取标准输入

  • 标头声明已被删除(从stdio.h?)

  • 不建议使用gets()

  • 不推荐使用gets()

但是我还是想用它。可能在标题和目标代码完全消失之前“保存”它们的副本。

我不喜欢fgets(),因为如果输入太长,它只会返回适合的内容,而不会表明字符串已被截断。字符串的其余部分(或至少下一部分)在下一次调用时返回,如果您只是在编写程序以将标准输入复制到标准输出或文件中,那很好(为什么有人要编写程序?这样做吗?)但是如果您以某种方式处理数据则没用。

请不要回答这个问题,我怎么知道输入字符串已被fgets()截断?那不是我要回答的问题。正确的问题是我如何在没有太多关于厄运和灾难的警告的情况下使用gets()?

而且,请没有关于我不想使用gets()的讲座。

我在Debian 9下使用gcc c;没有IDE。

c debian gcc

-4
推荐指数
1
解决办法
84
查看次数

标签 统计

c ×1

debian ×1

gcc ×1