isatty_linux.go 311 B

12345678910111213141516
  1. // +build linux
  2. package isatty
  3. import (
  4. "syscall"
  5. "unsafe"
  6. )
  7. const ioctlReadTermios = syscall.TCGETS
  8. func IsTerminal(fd int) bool {
  9. var termios syscall.Termios
  10. _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
  11. return err == 0
  12. }