freopen怎么转成用freopen_s?

阿高 2011-09-24 01:37:02
freopen("CONOUT$", "a", stdout)怎么转成freopen_s形式?多了一个参数不知道是什么意思

使用freopen总是有警告,很烦。
这句具体是什么意思我也不知道,我只知道这句的作用。
...全文
3031 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
透明的疯子 2014-02-01
  • 打赏
  • 举报
回复
楼上正解,赞一个
TDXW0628 2012-11-03
  • 打赏
  • 举报
回复
在最前面加上#pragma warning(disable:4996)就可以去掉警告了……
阿高 2011-09-27
  • 打赏
  • 举报
回复
没人能告诉我怎么取消这个警告吗
hongwenjun 2011-09-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yq_118 的回复:]

这完全是安全恐吓,标准库里面只有gets是不安全的。

这样一但用了专有的版本,就失去了C的可移植性了。

就被这一平台死死的捆住了。
[/Quote]
++

strcpy 等也是要警告的。

W1nds 2011-09-24
  • 打赏
  • 举报
回复
FILE *fp;
errno_t err;
err=fopen_s(&fp,"ServerErr","a+");
jackyjkchen 2011-09-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fg5823820 的回复:]

即使是安全恐吓,每次都警告还是很烦。如果能取消掉这条警告那就没事了

freopen_s MSDN里的我也看了,关键是我对这些流处理基本上无知,我只是想在窗口里能用printf输出调试信息。如何才能改成同样的效果?
[/Quote]
警告里都说了,加个宏就能去掉
阿高 2011-09-24
  • 打赏
  • 举报
回复
即使是安全恐吓,每次都警告还是很烦。如果能取消掉这条警告那就没事了

freopen_s MSDN里的我也看了,关键是我对这些流处理基本上无知,我只是想在窗口里能用printf输出调试信息。如何才能改成同样的效果?
stein42 2011-09-24
  • 打赏
  • 举报
回复
这完全是安全恐吓,标准库里面只有gets是不安全的。

这样一但用了专有的版本,就失去了C的可移植性了。

就被这一平台死死的捆住了。
mstlq 2011-09-24
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/88k7d7a7(v=vs.80).aspx

// crt_freopen_s.c
// This program reassigns stderr to the file
// named FREOPEN.OUT and writes a line to that file.

#include <stdio.h>
#include <stdlib.h>

FILE *stream;

int main( void )
{
errno_t err;
// Reassign "stderr" to "freopen.out":
err = freopen_s( &stream, "freopen.out", "w", stderr );

if( err != 0 )
fprintf( stdout, "error on freopen\n" );
else
{
fprintf( stdout, "successfully reassigned\n" ); fflush( stdout );
fprintf( stream, "This will go to the file 'freopen.out'\n" );
fclose( stream );
}
system( "type freopen.out" );
}

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧