注册 登录
编程论坛 Linux教室

在Linux下C的编程问题

yanzhong 发布于 2007-12-14 20:41, 4617 次点击
在C语言中的gets(),在Linux下应该相应转换成什么??
如:在C中语句: printf("\n\t\t请输入值:");
              gets(p->X);
       在Linux下应该写成什么??


帮帮偶哦……
11 回复
#2
VxWorks2007-12-14 21:09
什么c语言中的,linux中的,难道linux中没有c语言?
#3
yanzhong2007-12-14 21:14
呃……  是不是我没表述清楚呀……
  我的意思是在Window下运行的C语句:gets(),在Linux环境下运行时应该写成什么……
我在Gcc调试时出现错误提示“the 'gets' function is dangerous and should not be used.”
#4
VxWorks2007-12-14 22:57
gets是标准库函数,没有问题的,这里只是一个警告而已,不用理它。
gets容易导致溢出,用这个函数不怎么安全,所以这里给了个警告。
#5
yangzhifu2007-12-17 17:00
我强烈建议不要用gets函数!
如果想知道的话就找我!或者在网上搜搜看
我小声的说:这病毒的一个入口!
#6
cnenc2007-12-17 22:23
你在这里说不行吧?
#7
loosky2007-12-28 19:27
存在既是道理,^_^
#8
felove2007-12-30 03:15
man gets
另外:手册上也说明最好不要用这个函数了,有些东西可能是历史问题了。
#9
windflush2007-12-30 21:03
Unix的历史上曾经有一次巨型的蠕虫病毒爆发,原因就是利用了gets的缓冲区溢出。
可以告诉楼主,在Unix/Linux现在的编程中,基本见不到gets的踪影,如果有什么理由非让你用gets不可,我觉得你是在故意制造bug
#10
first_love2008-01-09 23:11
又明白了一个道理,谢谢各位同胞们。
#11
b6292008-01-14 09:21
受教了! 好象在win下我們也很少用!!!
#12
compiler2011-07-28 09:43
gets不安全,容易溢出,假如就简单用控制台输入的话没问题,貌似就2048个字节,但是用重定向的话就会溢出,用fgets就不会了。
1