linux 终端下敲ctrl-c时,到底发生了什么?
通过telnet登录到单板,然后按ctrl-c会发生什么情况,流程是怎么样的?
在分析之前,先介绍tty的相关知识。
我们可以认为,所有跟输入输出相关的操作,最终都由tty来接管。
举例来说,当我们敲 ls /dev时得到
[root@ dev]# ls /dev
autofs fb loop0 lp3 oldmem sda1 snapshot tty12 tty22
tty32 tty42 tty52 tty62 usbmon1
block fb0 loop1 MAKEDEV port sda2 snd tty13 tty23
tty33 tty43 tty53 tty63 usbmon2
bsg fd loop2 mapper ppp sda3 stderr tty14 tty24
tty34 tty44 tty54 tty7 usbmon3
bus full loop3 mcelog ptmx sda4 stdin tty15 tty25
tty35 tty45 tty55 tty8 usbmon4
char fuse loop4 megadev0 pts sda5 stdout tty16 tty26
tty36 tty46 tty56 tty9 usbmon5
console hpet loop5 mem random sda6 systty tty17 tty27
tty37 tty47 tty57 ttyS0 vcs
core hvc0 loop6 net rfkill sequencer tty tty18 tty28
tty38 tty48 tty58 ttyS1 vcs1
cpu input loop7 network_latency root sequencer2 tty0 tty19 tty29
tty39 tty49 tty59 ttyS2 vcsa
cpu_dma_latency kmem lp0 network_throughput rtc sg0 tty1 tty2 tty3
tty4 tty5 tty6 ttyS3 vcsa1
disk kmsg lp1 null rtc0 sg1 tty10 tty20 tty30
tty40 tty50 tty60 urandom vga_arbiter
dri log lp2 nvram sda shm tty11 tty21 tty31
tty41 tty51 tty61 usbmon0 zero
[root@ dev]#
另外还可以通过 /proc/tty/drivers得到tty相关驱动信息
[root@ dev]# cat /proc/tty/drivers
/dev/tty /dev/tty 5 0 system:/dev/tty
/dev/console /dev/console 5 1 system:console
/dev/ptmx /dev/ptmx 5 2 system
/dev/vc/0 /dev/vc/0 4 0 system:vtmaster
serial /dev/ttyS &nb