리눅스에서는,
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을 호출하여 작동한다는 점에 유의하세요 . 파일의 플래그나 기타 메타데이터를 기반으로 추측하지 않습니다.