#include <signal.h>
#include <unistd.h>
#include <iostream>
using namespace std;
bool printFlag = false;
void signal_handler(int sig)
{
std::cout<<"get signal: "<<sig<< std::endl;
printFlag = true;
}
void signal_stop_handler(int sig)
{
std::cout<<"get signal:"<<sig<<std::endl;
printFlag = false;
}
int main()
{
signal(40, (sighandler_t)signal_handler);
signal(41, (sighandler_t)signal_stop_handler);
while(true)
{
if (printFlag)
{
std::cout<<"after get signal"<<std::endl;
}
else
{
std::cout<<"waiting signal..."<<std::endl;
}
sleep(10);
}
return 0;
}
$kill -40 程序ID
$kill -41 程序ID
比如要控制一个程序的开关,没法与其他程序通信时可以用这种方式。