ファイルを開かずにisatty()を実行できますか?

ファイルを開かずにisatty()を実行できますか?

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を呼び出して動作することに注意してください。ファイルのフラグやその他のメタデータに基づいて推測しません。

おすすめ記事