// constraints apply.
func NewFile(fd uintptr, name string) *File {
kind := kindNewFile
- if nb, err := unix.IsNonblock(int(fd)); err == nil && nb {
- kind = kindNonBlock
- }
- f := newFile(fd, name, kind)
+ appendMode := false
if flags, err := unix.Fcntl(int(fd), syscall.F_GETFL, 0); err == nil {
- f.appendMode = flags&syscall.O_APPEND != 0
+ if unix.HasNonblockFlag(flags) {
+ kind = kindNonBlock
+ }
+ appendMode = flags&syscall.O_APPEND != 0
}
+ f := newFile(fd, name, kind)
+ f.appendMode = appendMode
return f
}