Python中signal
时间: 2023-11-05 18:03:31 浏览: 122
signal是Python中的一个模块,用于对信号进行处理。在Unix/Linux系统中,进程会接收到各种不同的信号,例如键盘输入、进程结束等等。signal模块提供了一种方法,可以让Python程序处理这些信号,以实现一些特殊的功能。
signal模块提供了以下几个常用的函数:
- signal.signal(signum, handler):设置信号处理函数。当程序接收到指定的信号时,会执行handler函数。
- signal.SIG_IGN:表示忽略指定的信号。
- signal.SIG_DFL:表示使用信号的默认处理方式。
- signal.pause():暂停程序的执行,直到接收到一个信号。
以下是一个简单的例子,展示了如何使用signal模块设置信号处理函数并处理SIGINT信号(即用户按下Ctrl+C):
```python
import signal
def handler(signum, frame):
print('You pressed Ctrl+C!')
signal.signal(signal.SIGINT, handler)
while True:
pass
```
在上面的代码中,我们定义了一个handler函数,用于处理SIGINT信号。然后使用signal.signal()函数将handler函数绑定到SIGINT信号上。最后进入一个无限循环,等待信号的到来。
当用户按下Ctrl+C时,程序会接收到SIGINT信号,然后执行handler函数。在handler函数中,我们打印了一条信息,告诉用户他们按下了Ctrl+C。然后程序继续运行,等待下一个信号的到来。
阅读全文