使用Ctrl+C终止程序时是否可以做一些别的操作?

操作系统 ,

答案

可以。
当我们在键盘按下Ctrl+C组合键时,系统向当前终端运行的程序发送名为 SIGINT,值为2的中断信号。
默认情况下,程序收到 SIGINT 信号后会直接退出程序。
如果我们为 SIGINT 信号处理器自定义一个处理方法,那程序就会执行这个方法后再退出。
如下是Python示例代码:

# coding: utf-8

import time
import signal
import sys


def signal_handler(sig, frame):
    print("You pressed Ctrl+C")
    time.sleep(3)       # 按下Ctrl+C后程序等待3秒钟再退出
    sys.exit(0)         # 退出程序,如果不写这一行,程序也会退出


signal.signal(signal.SIGINT, signal_handler)    # 为SIGINT自定义一个处理方法
signal.pause()

这里的信号是操作系统进程间通信的方式之一。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *