2 comedian comedian_ 于 2013.08.12 17:17 提问

unix系统调用getenv() 出core

在获取当地时间时, localtime调用到getenv函数出现core,,不是第一次调用的时候, 是在连续很快的调用情况下会出现core。 大家帮忙看看什么原因。

代码如下:

struct tm* ts;
ts = localtime(&now.tv_sec);
if (ts == NULL)
{
    printf("localtime : %d, %s\n", errno, strerror(errno));
    return ;
}

core 信息如下:

Program terminated with signal 11, Segmentation fault.
SEGV_MAPERR - Address not mapped to object
#0 0xc000000000338420:0 in getenv+0x1160 () from /usr/lib/hpux64/libc.so.1
(gdb) where
#0 0xc000000000338420:0 in getenv+0x1160 () from /usr/lib/hpux64/libc.so.1
#1 0xc000000000333a50:0 in tzset+0x110 () from /usr/lib/hpux64/libc.so.1
#2 0xc000000000330510:0 in localtime_r+0x120 () from /usr/lib/hpux64/libc.so.1
#3 0xc0000000003301d0:0 in localtime+0x30 () from /usr/lib/hpux64/libc.so.1

Csdn user default icon
上传中...
上传图片
插入图片