diff --git a/term.go b/term.go new file mode 100644 index 0000000..7efc353 --- /dev/null +++ b/term.go @@ -0,0 +1,13 @@ +package main + +import ( + "syscall" + "unsafe" +) + +// IsTerminal returns true if the given file descriptor is a terminal. +func IsTerminal(fd uintptr) bool { + var termios syscall.Termios + _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) + return err == 0 +}