📄 sigextrainfo.c
字号:
#include <signal.h>#include <sys/types.h>#include <unistd.h>void new_op(int,siginfo_t*,void *);int main(int argc,char** argv){ struct sigaction act; union sigval mysigval; int i; int sig; pid_t pid; char data[10]; memset(data,0,sizeof(data)); for(i=0;i<5;i++) { data[i]='A'; } data[2]='B'; mysigval.sival_ptr=data; sig=atoi(argv[1]); pid=getpid(); sigemptyset(&act.sa_mask); act.sa_flags=SA_SIGINFO; act.sa_sigaction=new_op; if(sigaction(sig,&act,NULL)<0) { printf("install sigal error\n"); } while(1) { sleep(2); printf("wait for the signal\n"); sigqueue(pid,sig,mysigval); } return 0;}void new_op(int signum,siginfo_t* info,void* myact){ int i; for(i=0;i<10;i++) { printf("%c\n",*((char*)((*info).si_ptr+i))); } printf("handle signal %d over",signum);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -