gettimeofday()在主线程中调用时返回垃圾值,但在其他线程中工作正常

时间:2013-10-02 02:10:11

标签: c linux multithreading pthreads

我从main()函数调用以下函数,也在其他创建的线程中调用。虽然它在创建的线程中工作正常,但它在main()中返回一个大的垃圾值。

long getTimeMilliSecs()
{
    struct timeval tempTime;
    gettimeofday(&tempTime, NULL);
    long retVal = 1000000*tempTime.tv_sec + tempTime.tv_usec;
    return retVal;
}

将Linux Ubuntu与gcc一起使用。有谁知道这种奇特行为的原因? 谢谢!

以这种方式使用它:

main()
{
:
   emuTime = getTimeMilliSecs();
}

线程侧代码:

long time1 = getTimeMilliSecs();
printf("time1: %ld  emuTime: %ld\n", time1, emuTime);   


OUTPUT:
time1: 9006806 emuTime: 1380680868658357

以类似方式调用线程。


来自评论:已更新! emuTime也是long类型。

0 个答案:

没有答案