概述
posix 的时钟使用
为了在系统休眠时,能进行唤醒,采用的时钟是CLOCK_REALTIME_ALARM的clockid,采用timer_create时,发现fail to timer create.采用系统内核的时钟却可以成功,
clock_gettime(CLOCK_REALTIME_ALARM, &time);也可以成功。
采用线程的通知的方式
下面贴一下部分代码:
头文件有:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <errno.h>
#include <unistd.h>
#include <signal.h>
void aaa(union sigval v)
{
struct timespec time = {0,0};
clock_gettime(CLOCK_REALTIME_ALARM, &time);
printf("CLOCK_REALTIME_ALARM sec = %d, nsec = %dn", (int)time.tv_sec, (int)time.tv_nsec);
}
int main(int argc, char *argv[])
timer_t timer_id;
struct sigevent evp;
int ret;
memset(&evp, 0, sizeof(struct sigevent));
evp.sigev_value.sival_int = 111;
evp.sigev_notify = SIGEV_THREAD;
evp.sigev_notify_function = aaa;
if(timer_create(CLOCK_REALTIME_ALARM, &evp, &timer_id) == -1)
{
error("fail to timer_create");
}
还未找到原因,先记录一下。唉
最后
以上就是清新镜子为你收集整理的2021-04-25的全部内容,希望文章能够帮你解决2021-04-25所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复