Linux

我可以在不打開文件的情況下執行 isatty()

  • December 11, 2021

在 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 來工作。它不會從文件的標誌或其他元數據中猜測。

引用自:https://unix.stackexchange.com/questions/681064