自学内容网 自学内容网

通过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)!