// main.c file
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
// linux header file
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>
//
void MySignalAction(int nSIG)
{
// 信号处理例程,其中dunno将会得到信号的值 SIGUSR1
switch(nSIG)
{
case SIGUSR1:
cout<<"Receiveed SIGUSR1 signal!/n"<<nSIG <<endl;
break;
case SIGUSR2:
cout<<"Receiveed SIGUSR2 signal.../n" <<nSIG <<endl;
break;
case SIGINT:
cout<<"Receiveed SIGINT signal.../n" <<nSIG <<endl;
break;
case SIGQUIT:
cout<<"Receiveed SIGUP signal.../n" <<nSIG <<endl;
break;
default:
cout<<"Receiveed unknown a signal !/n Signal ID: " <<nSIG
<<endl ;
}
cout<< "Leave MySignalAction Function!/n";
}
int main()
{
pid_t nPID = 0;
nPID = getpid();
cout <<"/n------------------------------------/n";
cout <<"The process id is : " <<nPID
<<endl <<endl;
cout <<"------------------------------------/n";
// test signal
// 下面设置三个信号的处理方法
signal(SIGUSR1, MySignalAction);
signal(SIGUSR2, MySignalAction);
signal(SIGINT, MySignalAction);
signal(SIGQUIT, MySignalAction);
for(bool bShow = true ; ; )
{
if(bShow)
{
cout<< "进入For loop。/n";
bShow = false;
}
// 挂起进程
pause();
}
cout<< "Process exit!/n";
return 0;
}
// -----------------------------------------------------------------------------------
#Makefile
#
obj = main main.o
main: main.o
g++ -o main main.o
main.o: main.c
g++ -c main.c
.PHONY: clean
clean:
-rm $(obj)
#end file