Linux
我可以在不打開文件的情況下執行 isatty()
在 Linux 上,
是否可以在不使用的情況下做相當於
isatty(fd)
給定路徑的操作open()
?我發現我
stat()
的路徑確定它是一個字元設備。接下來,我可以獲取主要和次要設備號並檢查/sys/dev/char/<major>:<minor>/subsystem
它是否連結到以/class/tty
. 這似乎適用於/dev/pts/<number>
設備(未出現在 中/sys/dev/char
)。有沒有更完整的方法?
嘗試使用
/proc/tty/drivers
而不是/sys/class/tty
.當然,這不會很健壯。請注意,它
isatty()
通過實際呼叫只應該在終端 (tcgetattr()
->ioctl(TCGETS)
) 上工作的 ioctl 來工作。它不會從文件的標誌或其他元數據中猜測。