系统:centos7.6 内核:3.10.0-1160.11.1.el7.x86_64 编译器:g++ 4.8.5
问题:/var/log/meassage里面提示segfault at 7fa6227fdf40 ip 00007fa62c0ba671 sp 00007fa6227fdf40 error 6 in libc-2.17.so[7fa62c060000+1c4000]。我调用corefile调试,显示信息如下
0x00007fa62c0ba671 in __GI__IO_vfscanf () from /lib64/libc.so.6
0x00007fa62c0d14d7 in vsscanf () from /lib64/libc.so.6
0x00007fa62c0cb447 in sscanf () from /lib64/libc.so.6
0x00007fa62c115e18 in __tzset_parse_tz () from /lib64/libc.so.6
0x00007fa62c11820b in __tzfile_compute () from /lib64/libc.so.6
0x00007fa62c116ba7 in __tz_convert () from /lib64/libc.so.6
判断为localtime()函数在多线程下崩溃,改用localtime_r()函数,还是出现同样问题。
下面是我的代码:
struct comtime
{
int mtday;
int mthour;
int mtmin;
int mtsec;
};
comtime ctime;
memset(&ctime, 0, sizeof(ctime));
time_t now = 0;
struct tm timenow = {0};
time(&now);
localtime_r(&now, &timenow);
ctime.mtday = timenow.tm_wday;
ctime.mthour = timenow.tm_hour;
ctime.mtmin = timenow.tm_min;
ctime.mtsec = timenow.tm_sec;
相似问题