如何确定/dev/tty对应哪个tty device?
/dev/tty(5:0)指向current->signal->tty,请问有什么办法(或接口)确定这个tty是哪个tty设备(在某个进程的上下文)?
例如/dev/tty1(4:1)、/dev/ttyS1(4:65)、/dev/pts/1(136:1)、/dev/ttyUSB1(?)
同理/dev/console(5:1)指向console_device,
具体是哪个设备取决于kernel启动参数console=XXX,
有没有办法得到其实际对应的设备device id(例如4:1而不是5:1)?
之所以提出这个问题,是因为有时候需要弄清楚进程的fd=0/1指向哪里?
tty(1)和ttyname(3)通过读取/proc/self/fd/X的符号链接来回答这个问题。
但是当重定向到/dev/tty的时候(例如 tty < /dev/tty),这个方法只能回答到/dev/tty,不能回答/dev/tty是pts还是tty。
请问有没有相关的ioctl可以获取这两个特殊设备映射的实际设备号?
没找到现成的ioctl函数
1. /dev/tty 与 tty or pts 是一种动态关系. 他的open函数里面也是取
current->signal->tty
2. console
cat /sys/devices/virtual/tty/console/active
ls -l /sys/class/tty
里面就是各个tty指向的设备的link
页:
[1]