您的位置:首页 > 编程语言 > C语言/C++

c++ 信号量

2015-07-23 17:59 239 查看
最近写了个c++项目,发现 ctrl + c 退出程序可以出发析构,但kill pid,则不会触发析构,导致现场数据丢失。

解决方案:同时捕捉以下信号。

signal(SIGINT, &完成命名空间::sigint_handler);   //之前只捕获这一个信号。

signal(SIGPIPE, SIG_IGN);

signal(SIGTERM, &完成命名空间::sigint_handler);

无论程序前台还是后台运行,析构函数都会被触发。且监控线程都会退出,且现场数据会被下发。

signal(SIGPIPE, SIG_IGN);

signal(SIGTERM, &完成命名空间::sigint_handler);                     |   这两个应该是接收了   kill pid 信号。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: