gpt4 book ai didi

c++ - localtime vs localtime_s 和适当的输入参数

转载 作者:IT老高 更新时间:2023-10-28 13:57:32 26 4
gpt4 key购买 nike

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 时,我得到:错误 C2660: 'localtime_s' : function does not take 1 arguments

这是我认为第一 block 代码中发生的事情:

  • 创建一个空的 time_t 变量。
  • 创建一个指向在 ctime 中定义的 timeinfo 的指针
  • 将原始时间写入原始时间引用
  • 将原始时间转换为对行人有意义的东西

    1. 我说的对吗?
    2. localtime_s 需要什么第二个输入参数?
    3. 如果我忽略整个本地时间安全问题,可能会发生什么最糟糕的情况。

最佳答案

localtime 返回一个指向静态分配的 struct tm 的指针。

使用 localtime_s,您传入一个指向 struct tm 的指针,localtime_s 将其结果数据写入其中,因此您的代码将从:

struct tm *timeinfo;
timeinfo = localtime(&rawtime);

类似于:

struct tm timeinfo;
localtime_s(&timeinfo, &rawtime);

这样,它会写入你的缓冲区,而不是拥有自己的缓冲区。

关于c++ - localtime vs localtime_s 和适当的输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14386923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com