isatty_windows.go 356 B

1234567891011121314151617
  1. // +build windows
  2. package isatty
  3. import (
  4. "syscall"
  5. "unsafe"
  6. )
  7. var kernel32 = syscall.NewLazyDLL("kernel32.dll")
  8. var procGetConsoleMode = kernel32.NewProc("GetConsoleMode")
  9. func IsTerminal(fd int) bool {
  10. var st uint32
  11. r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0)
  12. return r != 0 && e == 0
  13. }