github.com/linapex/ethereum-dpos-chinese@v0.0.0-20190316121959-b78b3a4a1ece/log/term/terminal_windows.go (about)

     1  
     2  //<developer>
     3  //    <name>linapex 曹一峰</name>
     4  //    <email>linapex@163.com</email>
     5  //    <wx>superexc</wx>
     6  //    <qqgroup>128148617</qqgroup>
     7  //    <url>https://jsq.ink</url>
     8  //    <role>pku engineer</role>
     9  //    <date>2019-03-16 12:09:41</date>
    10  //</624342647477112832>
    11  
    12  //基于ssh/终端:
    13  //版权所有2011 Go作者。版权所有。
    14  //此源代码的使用受BSD样式的控制
    15  //可以在许可文件中找到的许可证。
    16  
    17  //+构建窗口
    18  
    19  package term
    20  
    21  import (
    22  	"syscall"
    23  	"unsafe"
    24  )
    25  
    26  var kernel32 = syscall.NewLazyDLL("kernel32.dll")
    27  
    28  var (
    29  	procGetConsoleMode = kernel32.NewProc("GetConsoleMode")
    30  )
    31  
    32  //如果给定的文件描述符是终端,则istty返回true。
    33  func IsTty(fd uintptr) bool {
    34  	var st uint32
    35  	r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0)
    36  	return r != 0 && e == 0
    37  }
    38