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':函数不接受1个参数
以下是我认为在第一个代码块中正在发生的事情:
- 创建一个空的time_t变量。
- 创建指向定义在ctime中的timeinfo的指针
- 将rawtime写入rawtime引用
将rawtime转换为对行人有意义的内容
- 我是对的吗?
- localtime_s需要什么第二个输入参数?
- 如果我忽略整个localtime安全问题,最糟糕的情况会是什么。
1. 对的。
2. localtime_s需要一个指向struct tm 的指针作为第二个输入参数。
3. 如果忽略localtime的安全问题,可能会遇到缓冲区溢出和其他安全问题。