/*

  • 编写一个程序,实现同一个信号处理函数对多个信号的处理
    */

#include
#include
void intfunc(int signum);
void exitfunc(int signum);

int main(int argc, char *argv[])
{
char buffer1[100],buffer2[100];
int i;
if(signal(SIGINT,&intfunc)==-1)
{
printf("Couldn't register signal hanlder for SIGINT!\n");
exit(1);
}
if(signal(SIGTSTP,&intfunc)==-1)
{
printf("Couldn't register signal hanlder for SIGTSTP!\n");
exit(1);
}
if(signal(SIGTERM,&exitfunc)==-1)
{
printf("Couldn't register signal hanlder for SIGTERM!\n");
exit(1);
}
printf("Pid of This Process:%d\n",getpid());
printf("Please input:\n");
for(;;)
{
printf("please input:\n");
fgets(buffer1,sizeof(buffer1),stdin);
for(i=0;i<100;i++)
{
if(buffer1[i]>=97&&buffer1<=122)
buffer2[i]=buffer1[i]-32;
else
buffer2[i]=buffer1[i];
}
printf("Your input is: %s\n",buffer2);
}
exit(0);
}
void intfunc(int signum)
{
printf("catch signal %d\n",signum);
}
void exitfunc(int signum)
{
printf("signal SIGTERM\n");
exit(0);
}