localtime函数用法 为什么localtime函数是线程不安全的?

为什么localtime函数是线程不安全的?根据Localtime函数的原型定义进行分析struct TM*Localtime(const time)函数返回struct TM指针,在函数描述中不要求

为什么localtime函数是线程不安全的?

根据Localtime函数的原型定义进行分析

struct TM*Localtime(const time)函数返回struct TM指针,在函数描述中不要求是自由的,证明TM对象不是malloc或new。那么TM必须是Localtime函数中的全局变量或局部静态变量。

这样的变量在多线程访问时会出现问题。第一个线程在返回Localtime之前更改变量的值,第二个线程再次更改变量,依此类推。这样,当第一个线程实际返回时,值被更改了很多次,这是一个典型的函数重入问题。

因此,Localtime函数线程不安全。

时间函数gmtime和localtime有什么区别?

1. 本地时间是从1970-1-1零点到当前时间系统的偏移秒数,转换为本地时间。gmtime函数转换的时间是UTC时间,没有时区转换。

2. 注:此函数得到的TM结构时间为日历时间。

3. 用法:structtm*本地时间(consttime) uT*时钟

4。返回值:返回指向TM结构的指针。TM结构是一种时间结构。H存储时间量(月、年、日等)

5