1、设计一个程序,要求程序运行后进入一个无限循环,当用户按下中断键(+Z)时,进入程序的自定义信号处理函数,当用户再次按下中断键(+Z)后,结束程序运行。
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
void fun_ctrl_z();
int main()
{
signal(SIGTSTP,fun_ctrl_z);
printf("主程序:程序进入一个无限循环!\n");
while(1)
{
printf("这是一个无限循环(要退出请按<Ctrl>+Z键)!\n");
sleep(3);
}
exit(0);
}
void fun_ctrl_z()
{
printf("你按了<Ctrl>+Z键");
signal(SIGTSTP,SIG_DFL);
}
2、设计一个程序,要求程序主题运行时,即使用户按下中断键(+C),也不能影响正在运行的程序,等程序主体运行完毕后才进入自定义信号处理函数。
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
void fun_ctrl_c();
int main()
{
int i;
sigset_t set,pendset;
struct sigaction action;
signal(SIGINT,fun_ctrl_c);
if(s