isatty_bsd.go

 1// +build darwin freebsd openbsd netbsd dragonfly
 2// +build !appengine
 3
 4package isatty
 5
 6import (
 7	"syscall"
 8	"unsafe"
 9)
10
11const ioctlReadTermios = syscall.TIOCGETA
12
13// IsTerminal return true if the file descriptor is terminal.
14func 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}