Linux RHEL 7.2 c ++,==测试失败

时间:2017-01-24 15:13:13

标签: c++ linux rhel

我发现问题如下: 我有一个long int表示一个tid,稍后我通过一个简单的检查检查这是否与使用pthread_self()的当前tid相同:

if(my_cachedTID == pthread_self())
      printf("TIDs match");
else
      printf("TIDs don't match %u : %u ", mycachedTID , pthread_self());

有时,我得到输出为" TID不匹配123456:123456" 这里123456就是例如。我的意思是它说Don不匹配,即使它们实际上是相同的值,并且相同的代码大部分时间都在工作,但有时却没有。它说TID不匹配的情况我添加了以下代码

long int diff = my_cachedTID - (long int) pthread_self();
 printf("%u",diff); //prints 0 , which is correct..

我只是无法弄清楚..为什么==在为两者打印相同的值时失败,在打印时差异为0。 任何指针都赞赏。

0 个答案:

没有答案