XCode正常关闭程序

格莱诺

我正在使用xcode开发类似于服务器的程序,并且希望它在调试运行之间正常关闭。基本上下面的行不起作用

std::signal(SIGKILL, [](int){
    printf("got sigkill here!\n"); 
    //shut-down code here
});

我曾尝试捕获其他信号,但到目前为止,SIGINT,SIGTERM和SIGABRT均无效。xcode如何终止程序(如果打印)

程序以退出代码结束:9

到控制台?

编辑显然无法捕获SIGKILL,请参阅此Wikipedia条目。

与SIGTERM和SIGINT相比,此信号无法捕获或忽略,并且接收过程在接收到此信号后无法执行任何清理

菲利普·贡萨尔维斯(FilipeGonçalves)

你抓不到SIGKILL当进程收到时SIGKILL,它立即终止。这用于杀死不会响应或忽略常规的bug进程SIGINT如果您可以捕获SIGKILL并可能忽略它,那么除了重新启动计算机之外,没有其他方法可以杀死有问题的进程。

另外,请注意,您正在调用printf()信号处理程序,这是不允许的。您不能指望它能起作用。

你可以看看在信号的安全保护功能signal手册页:http://man7.org/linux/man-pages/man7/signal.7.html -printf是不是它的一部分,因此,所有的赌注都关闭。

从联机帮助页:

信号处理程序的功能必须非常小心,因为在程序执行的任意位置可能会中断其他地方的处理。POSIX具有“安全功能”的概念。如果信号中断了不安全功能的执行,并且处理程序调用了不安全功能,则程序的行为是不确定的。

有关安全替代方案,请参见此问题:使用写入或异步安全函数从信号处理程序中打印int

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重复或关闭程序?

来自分类Dev

无法关闭程序

来自分类Dev

使用python关闭程序?

来自分类Dev

用电池关闭程序

来自分类Dev

InsertNode函数关闭程序

来自分类Dev

退出框架时如何关闭程序

来自分类Dev

是否可以通过python关闭程序?

来自分类Dev

每天在计划的时间自动关闭程序

来自分类Dev

关闭程序后出现异常

来自分类Dev

使用 gcc 编译时关闭程序

来自分类Dev

Qt:关闭模式对话框关闭程序

来自分类Dev

防止在控制台窗口关闭时关闭程序

来自分类Dev

我关闭程序时端口如何关闭

来自分类Dev

关闭程序后如何自动重新启动程序

来自分类Dev

关闭程序后如何删除程序exe文件

来自分类Dev

图书馆关闭程序,在一个“正常”的Java应用程序和Web应用程序运行良好

来自分类Dev

在Excel中使用Find和打开/关闭程序

来自分类Dev

Python的关闭程序记录在哪里?

来自分类Dev

PyQt4 WindowFlags不关闭程序

来自分类Dev

关闭程序后保留剪贴板信息

来自分类Dev

编写动作侦听器以关闭程序Java

来自分类Dev

如何通过按下按钮关闭程序?

来自分类Dev

在关闭程序之前,确认所有任务已完成

来自分类Dev

一律自动选择“关闭程序”

来自分类Dev

计算完成后如何用dos关闭程序?

来自分类Dev

PyQt4 WindowFlags不关闭程序

来自分类Dev

在CMD中强制退出/关闭程序/会话

来自分类Dev

从终端关闭程序窗口而无需终止进程

来自分类Dev

如何完全使用“后退”按钮关闭程序