C gettimeofday()在主线程中调用时返回垃圾值,但在其他线程中工作正常
我从main()函数调用以下内容,也在其他创建的线程中调用。虽然它在创建的线程中工作正常,但在my main()中返回一个较大的垃圾值 在gcc中使用Linux-Ubuntu。有人知道这种奇怪行为的原因吗? 谢谢大家! 以这种方式使用它:C gettimeofday()在主线程中调用时返回垃圾值,但在其他线程中工作正常,c,linux,multithreading,pthreads,C,Linux,Multithreading,Pthreads,我从main()函数调用以下内容,也在其他创建的线程中调用。虽然它在创建的线程中工作正常,但在my main()中返回一个较大的垃圾值 在gcc中使用Linux-Ubuntu。有人知道这种奇怪行为的原因吗? 谢谢大家! 以这种方式使用它: main() { : emuTime = getTimeMilliSecs(); } 线程端代码: long time1 = getTimeMilliSecs(); printf("time1: %ld emuTime: %ld\n", time1,
main()
{
:
emuTime = getTimeMilliSecs();
}
线程端代码:
long time1 = getTimeMilliSecs();
printf("time1: %ld emuTime: %ld\n", time1, emuTime);
OUTPUT:
time1: 9006806 emuTime: 1380680868658357
调用线程的类似方法
来自评论:更新
emuTime
也是long
类型,它返回什么?您希望它返回什么?您检查返回值了吗?它应该返回类似于138080868658357
的值,它将在星期三2013-10-02 02:27:48 UTC之后不久返回,就在几分钟前我键入此内容时。问题是为什么它会从另一个线程返回其他内容。显示它返回的实际值。自1970年以来,函数返回的值为微秒。(系统上的long int
有多大?)?
long time1 = getTimeMilliSecs();
printf("time1: %ld emuTime: %ld\n", time1, emuTime);
OUTPUT:
time1: 9006806 emuTime: 1380680868658357