localtime_r 返回值不对,请求解救
代码如下:
struct tm pkt_time = {0};
static char ts[MAX_TIME_LEN];
time_t timep = 1439460264;
localtime_r(&timep , &pkt_time);// 这个函数貌似有些问题
strftime(ts, MAX_TIME_LEN, "%Y-%m-%d %H:%M:%S", &pkt_time);
printf("%d %d %d %d %d %d\n ", pkt_time.tm_sec, pkt_time.tm_min, pkt_time.tm_hour, pkt_time.tm_mday, pkt_time.tm_mon, pkt_time.tm_year);
printf("---- ts %u %s\n", pack->time_, ts);
程序运行后,打印出来的是:
38 13 9 0 0 493407503
---- ts 1439462109 493409403-01-00 09:13:38
明显不对啊, 求解救难道 是多线程引起的, 貌似 说 localtime_r 是线程安全的啊
struct tm pkt_time = {0};
static char ts[MAX_TIME_LEN];
time_t timep = 1439460264;
localtime_r(&timep , &pkt_time);// 这个函数貌似有些问题
strftime(ts, MAX_TIME_LEN, "%Y-%m-%d %H:%M:%S", &pkt_time);
printf("%d %d %d %d %d %d\n ", pkt_time.tm_sec, pkt_time.tm_min, pkt_time.tm_hour, pkt_time.tm_mday, pkt_time.tm_mon, pkt_time.tm_year);
printf("---- ts %u %s\n", pack->time_, ts);
程序运行后,打印出来的是:
38 13 9 0 0 493407503
---- ts 1439462109 493409403-01-00 09:13:38
明显不对啊, 求解救难道 是多线程引起的, 貌似 说 localtime_r 是线程安全的啊
...全文
相关推荐
localtime函数使用指南[项目源码]
本文详细介绍了localtime、localtime_s和localtime_r三种函数的使用方法和区别。localtime用于获取系统时间,精度为秒,但其非线程安全。localtime_r是Linux平台下的线程安全版本,通过传入结构体指针来存储时间信息。localtime_s则是Windows平台下的线程安全版本,参数顺序与localtime_r不同。文章通过代码示例展示了各函数的具体用法,并解释了为何需要线程安全的替代函数,以避免多线程环境下的数据竞争问题。
基于GNU11标准编译并利用POSIX扩展线程安全日期函数localtime_r与pthread库实现的多线程网络通信测试工具_项目极简说明为开发一个支持客户端与服务器双向交互的网.zip
基于GNU11标准编译并利用POSIX扩展线程安全日期函数localtime_r与pthread库实现的多线程网络通信测试工具_项目极简说明为开发一个支持客户端与服务器双向交互的网.zip
c++-06-控制台打印系统的日期和时间.rar
c++-06-控制台打印系统的日期和时间.rar
C语言获取当前时间封装函数-综合文档
C语言获取当前时间封装函数
Desktop_获取本地时间_
在linux中使用c语言简单的获取操作系统的本地时间。


