struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }; 返回值。0成功,-1失败 #include<stdio.h> #include<time.h> int main() { struct timespec ts; clock_gettime(CLOCK_REALTIME, &ts); printf("CLOCK_REALTIME: %d, %d", ts.tv_sec, ts.tv_nsec); clock_gettime(CLOCK_MONOTONIC, &ts);//打印出来的时间跟 cat /proc/uptime 第一个参数一样 printf("CLOCK_MONOTONIC: %d, %d", ts.tv_sec, ts.tv_nsec); clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts); printf("CLOCK_PROCESS_CPUTIME_ID: %d, %d", ts.tv_sec, ts.tv_nsec); clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts); printf("CLOCK_THREAD_CPUTIME_ID: %d, %d", ts.tv_sec, ts.tv_nsec); printf("/n%d/n", time(NULL)); return 0; } 用gcc test9.c -lrt运行,测试 #time ./a.out. /proc/uptime里面的两个数字(可用cat查看)分别表示: the uptime of the system (seconds), and the amount of time spent in idle process (seconds). 把第一个数读出来,那就是从系统启动至今的时间,单位是秒毕业论文
已经找到替代方案了,就是使用RTC时钟。 其中AlarmManager.java中的闹钟就是基于RTC时钟的一种实现 上一页 [1] [2]
|