⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sigxcpu.c

📁 xenomai 很好的linux实时补丁
💻 C
字号:
#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <signal.h>#include <getopt.h>#include <execinfo.h>#include <native/task.h>RT_TASK task;void task_body (void *cookie){    /* Ask Xenomai to warn us upon switches to secondary mode. */    rt_task_set_mode(T_WARNSW,0,NULL);    /* A real-time task always starts in primary mode. */    for (;;) {	rt_task_sleep(1000000000);        /* Running in primary mode... */	printf("Switched to secondary mode\n");        /* ...printf() => write(2): we have just switched to secondary	   mode: SIGXCPU should have been sent to us by now. */    }}void warn_upon_switch(int sig __attribute__((unused))){    void *bt[32];    int nentries;    /* Dump a backtrace of the frame which caused the switch to       secondary mode: */    nentries = backtrace(bt,sizeof(bt) / sizeof(bt[0]));    backtrace_symbols_fd(bt,nentries,fileno(stdout));}int main (int argc, char **argv){    int err;    signal(SIGXCPU, warn_upon_switch);    err = rt_task_create(&task,"mytask",0,1,T_FPU);    if (err)	{	fprintf(stderr,"failed to create task, code %d\n",err);	return 0;	}    err = rt_task_start(&task,&task_body,NULL);    if (err)	{	fprintf(stderr,"failed to start task, code %d\n",err);	return 0;	}    pause();    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -