如何以“安全”方式获取c ++中的当前时间

问题描述 投票:0回答:2

我对C ++并不陌生,但我大多只使用最基本的标准库功能,例如<iostream><vector><map>

现在,我正在开发一个简单的游戏,并且正在开发记录器类,但是我一直在获取当前时间。

[不要误会我的意思,我已经看到很多方法可以在StackOverflow和Google中获得时间,但是根据Visual Studio,它们都不是“安全的”。例如,当我使用asctime()ctime()时,出现此错误:

['ctime':此函数或变量可能不安全。考虑改用ctime_s。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。有关详细信息,请参见在线帮助。

但是当我尝试以好的方式使用安全版本时,我发现它们更加复杂,例如,这是ctime()函数:

ctime(const time_t *const_time)

ctime_s()相比:

ctime_s(char *const _Buffer, const size_t _SizeinBytes,const time_t *const _Time)

再次在互联网上看对我没有帮助,所以我在这里,问你们如何获取当前时间,而到时间,我指的是使用[安全]方法的诸如10:20之类的东西。] >

我对C ++并不陌生,但我大多只使用最基本的标准库功能,例如等。现在,我正在开发一个简单的游戏,并且正在开发...

c++ time chrono
2个回答
1
投票

asctime()ctime()函数是“不安全的”,因为它们返回一个指向静态缓冲区的指针,该静态缓冲区根据实现的不同可能不是线程安全的;如果它们不是线程安全的,则它们可能被覆盖。其他线程,然后才有机会使用它们。


2
投票

现代C ++具有<chrono>标头,用于时间提取和操作,一旦您了解它,它比传统C东西要好[[lot

© www.soinside.com 2019 - 2024. All rights reserved.