当前位置: 技术问答>linux和unix
多线程调用localtime有时得到的数据不正确如何解决
来源: 互联网 发布时间:2015-07-02
本文导语: struct tm *tblock; time_t timer; timer = time(NULL); tblock = localtime(&timer); 好像和localtime返回是static变量有关,如何解决,是通过编译解决还是程序写法修改,拜谢 | 改用localtime_r(),参数多一个char*buf,自己提...
struct tm *tblock;
time_t timer;
timer = time(NULL);
tblock = localtime(&timer);
好像和localtime返回是static变量有关,如何解决,是通过编译解决还是程序写法修改,拜谢
time_t timer;
timer = time(NULL);
tblock = localtime(&timer);
好像和localtime返回是static变量有关,如何解决,是通过编译解决还是程序写法修改,拜谢
|
改用localtime_r(),参数多一个char*buf,自己提供缓冲区代替里面的static缓冲区。
|
可能因为localtime是不可再入函数,多线程调用会有问题,
试一试加锁,各线程间互斥调用这个函数。
试一试加锁,各线程间互斥调用这个函数。