我一定是漏掉了什么。我可以使用clock_gettime获取CLOCK_TAI。
#include <pthread.h>
#include <stdio.h>
int main()
{
clockid_t clockTai = 11;
pthread_cond_t condition;
pthread_condattr_t eventConditionAttributes;
pthread_condattr_init( &eventConditionAttributes );
int ret = pthread_condattr_setclock( &eventConditionAttributes, clockTai );
printf( "%d %d\n", ret, clockTai );
pthread_cond_init( &condition,
&eventConditionAttributes );
return( 0 );
}当按如下方式编译时,它会产生以下输出:
g++ -o taiTest taiTest.cxx -lpthread -lrt
./taitest$ ./taiTest
22 11其中EINVAL = 22,CLOCK_TAI = 11。
这里的任何想法或帮助都非常感谢。提前谢谢。
发布于 2016-03-26 02:45:36
根据手册页面,pthread_condattr_setclock()仅接受一组有限的时钟标识值。CLOCK_TAI不是其中之一。手册页面谈到了系统时钟,这听起来有点模棱两可。CLOCK_REALTIME、CLOCK_MONOTONIC及其衍生物应为可接受的值。
https://stackoverflow.com/questions/36211357
复制相似问题