...
Source file src/cmd/dist/test_linux.go
1
2
3
4
5
6
7 package main
8
9 import (
10 "syscall"
11 "unsafe"
12 )
13
14 const ioctlReadTermios = syscall.TCGETS
15
16
17 func isTerminal(fd uintptr) bool {
18 var termios syscall.Termios
19 _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
20 return err == 0
21 }
22
23 func init() {
24 stdOutErrAreTerminals = func() bool {
25 return isTerminal(1) && isTerminal(2)
26 }
27 }
28
View as plain text