Tag: 不推荐使用

是()正式弃用?

基于最新的C ++ 11 草案 ,C ++引用了ISO / IEC 9899:1999 / Cor.3:2007(E)中C库函数的定义(根据§1.2[intro.refs] / 1) 。 根据最新的C99 TC3 草案 , The gets function is obsolescent, and is deprecated. (根据§7.26.9/ 2) 我可以安全地说在C和C ++中都不推荐使用gets()吗?

为什么我不能使用fopen?

在上一个问题的模型中, 我询问了所谓的安全库弃用 ,我发现自己同样感到困惑的是为什么fopen()应该被弃用。 该函数接受两个C字符串,并返回FILE * ptr,或者在失败时返回NULL。 线程安全问题/字符串溢出问题在哪里? 或者是别的什么? 提前致谢

为什么我不能使用strerror?

我正在将一些代码移植到Windows,而Microsoft编译器(Visual C ++ 8)告诉我strerror()是不安全的。 抛开微软所有安全字符串中的烦恼因素,我实际上可以看到一些已弃用的函数是危险的。 但我无法理解strerror()可能出现的问题。 它接受代码( int ),并返回相应的字符串,如果该代码未知,则返回空字符串。 危险在哪里? 在C中有一个很好的选择吗? 在C ++中有一个很好的选择吗? [编辑] 得到了一些很好的答案,现在理解一些实现可能疯狂到实际写入一个共同的缓冲区 – 在单线程中不安全的重入,从不介意线程之间! – 我的问题不再是“为什么我不能使用它,有什么替代方案?” “C和/或C ++中是否有任何体面,简洁的替代品?” 提前致谢