我有一个小型守护进程,我用C编写,我需要一种方法来获取线程上的当前CPU时间。 Linux显然提供了许多方法来执行此操作,clock_gettime(CLOCK_THREAD_CPUTIME_ID,...),pthread_getcpuclockid(),getrusage(RUSAGE_THREAD,...),但在OpenSolaris 2009.06下似乎都不支持这些。
是否有跨平台友好的方式来获取线程的当前CPU时间?如果没有,有没有办法在OpenSolaris中做到这一点?在这一点上,我甚至愿意加入一堆丑陋的编译器指令来实现这一目的。
答案 0 :(得分:0)
根据"Thread Priority on the Solaris Platform",Solaris 9及更高版本默认为线程与LWP(Light-Weight Processes)之间的一对一对应关系。因此,根据getrusage's manpage,您应该可以致电getrusage(RUSAGE_LWP, ...)
。