David K. Bainbridge | 215e024 | 2017-09-05 23:18:24 -0700 | [diff] [blame] | 1 | // +build darwin freebsd openbsd netbsd |
2 | // +build !appengine | ||||
3 | |||||
4 | package isatty | ||||
5 | |||||
6 | import ( | ||||
7 | "syscall" | ||||
8 | "unsafe" | ||||
9 | ) | ||||
10 | |||||
11 | const ioctlReadTermios = syscall.TIOCGETA | ||||
12 | |||||
13 | // IsTerminal return true if the file descriptor is terminal. | ||||
14 | func IsTerminal(fd uintptr) bool { | ||||
15 | var termios syscall.Termios | ||||
16 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) | ||||
17 | return err == 0 | ||||
18 | } |