1// Copyright 2014 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 5package os 6 7import "syscall" 8 9// supportsCloseOnExec reports whether the platform supports the 10// O_CLOEXEC flag. 11var supportsCloseOnExec bool 12 13func init() { 14 osrel, err := syscall.SysctlUint32("kern.osreldate") 15 if err != nil { 16 return 17 } 18 // The O_CLOEXEC flag was introduced in FreeBSD 8.3. 19 // See http://www.freebsd.org/doc/en/books/porters-handbook/freebsd-versions.html. 20 if osrel >= 803000 { 21 supportsCloseOnExec = true 22 } 23} 24