Linuxでは、
isatty(fd)
指定されたパスを使用せずにそのパスを実行することは可能ですかopen()
?
stat()
キャラクターデバイスであることを確認するためにパスを追跡したことが見つかりました。次に、メジャーとマイナーのデバイス番号を取得して、接続されて/sys/dev/char/<major>:<minor>/subsystem
いることを確認できます。これは、デバイス(には表示されていません)を/class/tty
除くすべての項目で機能するようです。/dev/pts/<number>
/sys/dev/char
より完全な方法はありますか?
ベストアンサー1
/proc/tty/drivers
代わりに試してみてください/sys/class/tty
。
もちろん、これはそれほど堅牢ではありません。isatty()
実際には、端末(tcgetattr()
-> ioctl(TCGETS)
)でのみ動作するioctlを呼び出して動作することに注意してください。ファイルのフラグやその他のメタデータに基づいて推測しません。