//+build linux //go:build linux package main import ( "os" "syscall" "unsafe" ) func isatty() bool { fd := os.Stdout.Fd() req := syscall.TCGETS termios := syscall.Termios{} _, _, errno := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(unsafe.Pointer(&termios))) if errno != 0 { return false } // Successfully got Termios info = stdout is a tty return true }