信号接受函数
#include<signal.h>
#include<stdio.h>
#include <unistd.h>
//typedef void (*sighandler_t)(int);
void handler(int signum){
switch(signum){
case SIGIO:
printf("SIGIO signal: %d\n", signum);
case SIGUSR1:
printf("SIGUSR1 signal: %d\n", signum);
}
}
int main(void)
{
//sighandler_t signal(int signum, sighandler_t handler);
signal(SIGIO, handler);//获取kill的信号
signal(SIGUSR1, handler);
printf("%d %d\n", SIGIO, SIGUSR1);
while(1);
return 0;
}
信号发送函数
#include <sys/types.h>
#include <signal.h>
#include<stdio.h>
#include <unistd.h>
int main(int argc, char** argv)
{
int cmd;
int pid = atoi(argv[1]);//格式转化
int signum = atoi(argv[2]);
//int kill(pid_t pid, int sig);
kill(pid, signum );//发送指令杀死进程
//第二种方法
//sprintf("cmd,kill -%d %d",signum ,pid);
//system(cmd);
return 0;
}
先运行信号接受
再运行信号发送 pid 9