localtime 与 localtime_s 以及适当的输入参数

2024-02-27

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 引用
  • 将原始时间转换成对行人有意义的东西

    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);

这样,它就写到your缓冲区,而不是拥有自己的缓冲区。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

localtime 与 localtime_s 以及适当的输入参数 的相关文章

  • 从接口调用“IsAssignableFrom”不会返回具体类

    我试图返回实现下面代码中定义的接口的类的对象类型 linq 语句仅返回接口本身 因此控制台输出只是 可分配实验 IRule 为什么不返回具体类 using System using System Linq namespace Assigna
  • C++ 中跨多个文件的类

    我几乎 100 确定我在这两个类中的语法都是正确的 但是我收到以下错误 对于 CShape cpp 错误 C2011 CShape class 类型重新定义 对于 CCircle cpp 错误 CS2504 CShape 基类未定义 这是
  • 从 GetLastError() 函数返回的错误代码中获取文本

    我需要获取从 GetLastError 函数获得的错误代码的文本 我看到了一些示例 但我想要一个获取代码并返回字符串的函数 谢谢大家 我猜你想要这样的东西 DWORD dwLastError GetLastError TCHAR lpBuf
  • 调用事件,h(args) 与 EventName?.Invoke()

    我总是这样调用事件 void onSomeEvent string someArg var h this EventName if h null h this new MyEventArgs someArg 今天 VS 2015 告诉我这可
  • 在 C# 中将“set”添加到接口的属性中

    我希望通过为该接口中的属性提供设置访问器来 扩展 该接口 界面看起来像这样 interface IUser string UserName get 我想要这样的东西 interface IMutableUser IUser string U
  • 尝试使用指向 ODBC DSN 的连接字符串时出现关键字不支持异常

    我为我的 Asp Net MVC 应用程序的数据库访问创建了一个 ODBC DSN 主要原因之一是它可以轻松地将数据库凭据 例如服务器地址 端口 用户名和密码 置于源代码控制之外 而不会妨碍我的发布能力 所以我将连接更改为DSN MyDSN
  • Request.Url.Port 给出错误的端口

    我的支持团队为我提供了一个 Live IP 例如http 201 121 152 168 68 现在在正常情况下你会认为68是端口 但是 当我执行 Request Host 时 我得到201 121 152 168当我执行 Request
  • 如何检查特定作业是否在quartz调度程序中运行#

    我正在使用石英调度程序根据触发器的用户输入来安排写入文件的作业 我想检查作业是否仍在 stop 方法中运行 如何检查作业是否仍在运行 public class JobScheduler static StdSchedulerFactory
  • 运行时动态转换

    有没有一种方法可以在运行时动态转换 如以下伪代码 foreach DataRow row in table Rows foreach DataColumn col in table Columns if row col DBNull Val
  • 时间:2019-03-17 标签:c++rapidjson返回值

    我在我的项目中使用rapidjson 我有一个方法可以解析 json 并返回其中的一部分 static rapidjson Document getStructureInfo std string structureType rapidjs
  • 从命名管道读取

    我必须实现一个 打印服务器 我有 1 个客户端文件和 1 个服务器文件 include
  • 更改 RabbitMQ 队列中的参数

    我有一个 RabbitMQ 队列 最初声明如下 var result channel QueueDeclare NewQueue true false false null 我正在尝试添加死信交换 因此我将代码更改为 channel Exc
  • 结构体前向声明编译失败

    我有以下代码 但编译器说 sender wrapper 未定义 即使我向前声明了它 我不能对结构进行前向声明吗 用VS2003编译 struct send wrapper struct IPSend IPSend IPSend const
  • DISM.exe 返回代码?

    我有一个程序调用 dism exe 程序 它在后台运行一些命令 现在 我只检查返回代码 0 或其他任何内容 以显示进程失败或成功 我可以用什么来交叉检查返回代码以获得准确的返回错误 DISM 参考了哪些回报 评论中提供的链接DISMAPI
  • ThemeInfo 属性有什么用?

    每当我创建新的 WPF 应用程序或 WPF 用户控件库时 AssemblyInfo cs文件包含以下属性 assembly ThemeInfo ResourceDictionaryLocation None where theme spec
  • thread_local成员变量构造

    我遇到了 thread local 的一些奇怪行为 不确定我是否做错了什么或者这是一个 GCC 错误 我有以下最小重现场景 include
  • Eclipse 调试模式下的 GDB 找不到 stdlib/rand.c

    我试图让 gdb 在 ubuntu 上与 eclipse cdt 一起运行 以开始调试一些简单的程序 所以我做了我认为必要的步骤来让它运行 1 创建可执行项目 2 Compile 3 Run 4 创建文件 gdbinit 并将其放在主项目文
  • 无法加载文件或程序集“SharpSvn”或其依赖项之一。尝试加载格式不正确的程序

    我刚刚在这里下载了 64 位版本的 SharpSVNthe link http sharpsvn open collab net files documents 180 5570 SSvn 1 7002 1998 x64 zip 当我运行我
  • System.Globalization.CultureInfo 不包含 Name 的定义

    我对 System Globalization CultureInfo 类和 System Globalization 命名空间有这个特殊问题 我从具有 CultureInfo 属性的 API 调用返回一个对象 语言 我能够成功地将其在客户
  • C 中的静态和外部内联函数[重复]

    这个问题在这里已经有答案了 我正在尝试详细了解静态函数和外部函数之间的区别 我知道静态内联函数和外部内联函数之间的基本区别 我的理解如有错误请指正 静态内联函数仅对定义它的翻译单元可见 外部内联函数可以在多个翻译单元中访问 最好在头文件中定

随机推荐