使用场景(个人场景):
在 图像处理过程中,在不挂载gdb的情况下,将内存中的数据导出出来(导出的动作程序中已经写好)
如:
...
if (b_out2disk)
{
// 数据或者图像导出到磁盘
}
...
我们使用signal来控制“b_out2disk”,从而可以灵活的操作:
#include <iostream>
#include <signal.h>
#include <thread>
bool g_b_out2disk = false;
void signal_start()
{
g_b_out2disk = true;
}
void signal_end()
{
g_b_out2disk = false;
}
int main()
{
// 关键部分
signal(63, signal_start);
signal(64, signal_end);
while(true)
{
std::this_thread::sleep_for(std::chrono::seconds(1));
}
return 0;
}
完成类似上述代码,就可以通过:
kill -63 pid 来打开开关
kill -64 pid 来关闭开关