github.com/guyezi/gofrontend@v0.0.0-20200228202240-7a62a49e62c0/libgo/go/internal/syscall/unix/nonblocking.go (about) 1 // Copyright 2018 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // +build dragonfly freebsd hurd linux netbsd openbsd 6 7 package unix 8 9 import "syscall" 10 11 //extern __go_fcntl_uintptr 12 func fcntl(uintptr, uintptr, uintptr) (uintptr, uintptr) 13 14 func IsNonblock(fd int) (nonblocking bool, err error) { 15 flag, e1 := fcntl(uintptr(fd), syscall.F_GETFL, 0) 16 if e1 != 0 { 17 return false, syscall.Errno(e1) 18 } 19 return flag&syscall.O_NONBLOCK != 0, nil 20 }