我们能创建一个操作系统无法停止的程序吗?例如,重写所有的信号,如ctrl+c,ctrl+z等等,所以每当操作系统向程序发送kill信号时,它就会忽略它。

最佳答案

您可以通过signal系统调用忽略大多数信号,如下所示:

signal(SIGINT, SIG_IGN);

在这里,我们将SIGINT的信号处理程序(当您按下ctrl+c时会引发)设置为SIG_IGN,这是一个特殊的标志,表示该信号将被忽略。
但是,在signal(2)的手册页中:
信号SIGKILLSIGSTOP不能被捕获或忽略。
因此,虽然可以忽略SIGINT(即ctrl+c),但不能忽略SIGSTOP(ctrl+z)或SIGKILL

关于c - 创建一个不可停止的程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32534736/

10-11 22:06
查看更多