实验题目:信号通信
实验前置知识:
信号处理函数:
(1)信号安装函数
signal()函数示例:
#include"signal.h"/使用两个函数都必须包含这个头文件
#include"unistd.h"
#include"stdio.h"
//信号处理函数,调用时参数dunno会得到信号的值
void sigroutine(int dunno){
switch(dunno){
case 1:printf("Git a signal-SIGHUP\n");break;
case 2:printf("Git a signal-SIGINT\n");break;
case 3:printf("Git a signal-SIGQUIT\n");break;
}
return;
}
int main(){
printf("process id is %d\n",getpid());
//下面设置了3个信号处理函数
signal(SIGHUP,sigroutine); //通过kill操作得到Git a signal-SIGHUP
signal(SIGINT,sigroutine); //通过Ctrl+C得到Git a signal-SIGINT
signal(SIGQUIT,sigroutine); //通过Ctrl+\得到Git a signal-SIGQUIT
for(;;);
}
//kill -9 31658 可以终止进程
操作结果:
sigaction()函数示例:
#include"signal.h"//使用两个函数都必须包含这个头文件
#define PROMPT"你想终止程序吗&#