LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 771|回复: 12

请问:这段程序是什么问题啊

[复制链接]
发表于 2004-12-1 09:42:43 | 显示全部楼层 |阅读模式
#include<stdio.h>
main()
{
  char str1[10];

  gets(str1);

puts(str1);
}
/tmp/ccIfH3Q9.o(.text+0x18): In function `main':
: the `gets' function is dangerous and should not be used.
这是什么意思?请解释一下,谢谢
发表于 2004-12-1 09:57:44 | 显示全部楼层
就是说你的函数不安全,最好别用,
楼主英文不行啊!
发表于 2004-12-1 09:58:09 | 显示全部楼层
就是说你的函数不安全,最好别用,
楼主英文不行啊!
发表于 2004-12-1 10:27:56 | 显示全部楼层
试了下,也这样,不知道是什么原因
发表于 2004-12-1 13:04:36 | 显示全部楼层
为什么楼上的楼上已经解释了两次,而楼上还是不知道原因?
 楼主| 发表于 2004-12-3 11:43:36 | 显示全部楼层
谢谢各位,我已经看到了,我得E文不太好,下面的都看懂,但是/tmp/ccIfH3Q9.o(.text+0x18): 是代表什么意思啊
发表于 2004-12-3 11:59:12 | 显示全部楼层
是个临时文件
发表于 2004-12-3 13:07:15 | 显示全部楼层
这个困扰多年的安全问题,缓冲区溢出的制造者, gets ,传说中1988年 Morriss 就是利用这个缺陷制造了震惊世界的蠕虫病毒,此后的推荐就是
  1. [color=blue]
  2.         #include <stdio.h>
  3.         size_t fgets(char *buffer, size_t length, FILE *f);
  4. [/color]
复制代码
 楼主| 发表于 2004-12-3 13:47:58 | 显示全部楼层
谢谢,又学到东西了,我很喜欢这儿,有这么多师兄耐心指导
发表于 2004-12-4 03:39:00 | 显示全部楼层
在WINXP下面可以通过。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表