time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
这将返回:警告 C4996:'localtime':此函数或变量可能不安全。考虑使用 localtime_s 代替。
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime_s ( &rawtime );
当我将 localtime 更改为 localtime_s 时,我得到: error C2660: 'localtime_s' : function does not take 1 argument
这是我认为第一段代码中发生的事情:
- 创建一个空的 time_t 变量。
- 创建一个指向 ctime 中定义的 timeinfo 的指针
- 将 rawtime 写入 rawtime 引用
-
将原始时间转换成对行人有意义的东西
- 我对吗?
- localtime_s 需要什么第二个输入参数?
- 如果我忽略整个本地安全问题,最糟糕的情况是什么?
localtime
返回一个指向静态分配的指针struct tm
.
使用 localtime_s,您可以传递一个指向 struct tm 的指针,并且localtime_s
将其结果数据写入其中,因此您的代码将从:
struct tm *timeinfo;
timeinfo = localtime(&rawtime);
像这样的东西:
struct tm timeinfo;
localtime_s(&timeinfo, &rawtime);
这样,它就写到your缓冲区,而不是拥有自己的缓冲区。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)