sinat_29168845 2017-06-29 01:54 采纳率: 50%
浏览 1486
已采纳

关于C语言的local time使用

start = time(NULL);

newtime = localtime(&start);

strftime(tmpbuf,128,"Start Time:\nData: %Y-%m-%d Time: %I:%M:%S\n",newtime);

printf (tmpbuf);

不知道为什么一直出现警告
1>d:\my documents\桌面\program0515\dsmcpro.cpp(103) : warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> c:\program files\microsoft visual studio 9.0\vc\include\time.inl(114) : 参见“localtime”的声明

  • 写回答

3条回答 默认 最新

  • 战在春秋 2017-06-29 02:24
    关注

    std::localtime返回的指针指向的是某个static对象,是线程不安全的。

    微软提供了对应的线程安全的版本: localtime_s。

    如果不是多线程环境,一个简单的解决办法可以去掉此警告:

     #pragma warning(disable : 4996)   //在文件头部加上此句
    

    如果对您有帮助,请采纳答案好吗,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记