通过kill给程序发信号,间接控制程序行为
#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
比如要控制一个程序的开关,没法与其他程序通信时可以用这种方式。
原文地址:https://blog.csdn.net/gdizcm/article/details/143828349
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!