You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

19 lines
389 B

  1. // +build linux
  2. // +build !appengine
  3. package isatty
  4. import (
  5. "syscall"
  6. "unsafe"
  7. )
  8. const ioctlReadTermios = syscall.TCGETS
  9. // IsTerminal return true if the file descriptor is terminal.
  10. func IsTerminal(fd uintptr) bool {
  11. var termios syscall.Termios
  12. _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
  13. return err == 0
  14. }