我需要找到连接到系统上任何进程的标准输入的设备文件(/dev/tty*
或/dev/pts/*
)。我想实现类似于tty(1)
程序的东西,但它适用于任何进程。我该怎么做?这是在Linux上。
我得到的最接近的结果是解析/proc/pid/stat
文件并读取第6列。这给了我一个对应于我感兴趣的st_rdev
文件的tty
的数字。然后,我必须对所有的stat(2)
和/dev/tty*
文件运行/dev/pts/*
,以获取st_rdev
编号并使用该编号映射回。这是psutil包中使用的方法。
更新:我后退了一步,将这个问题改写为我要寻找的内容,而不是实现细节。
最佳答案
在Linux上,您只需执行ls -L /proc/pid/fd/0
即可获得tty,该tty与进程idpid
的进程的stdin相连。
关于c - 查找连接到Linux上任何进程的stdin的tty设备文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22758289/