Copyright 2009 The Go Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
+build aix darwin dragonfly freebsd linux netbsd openbsd solaris
Package unix contains an interface to the low-level operating system primitives. OS details vary depending on the underlying system, and by default, godoc will display OS-specific documentation for the current system. If you want godoc to display OS documentation for another system, set $GOOS and $GOARCH to the desired system. For example, if you want to view documentation for freebsd/arm on linux/amd64, set $GOOS to freebsd and $GOARCH to arm. The primary use of this package is inside other packages that provide a more portable interface to the system, such as "os", "time" and "net". Use those packages rather than this one if you can. For details of the functions and data types in this package consult the manuals for the appropriate operating system. These calls return err == nil to indicate success; otherwise err represents an operating system error describing the failure and holds a value of type syscall.Errno.
package unix // import "golang.org/x/sys/unix"

import (
	
	
	

	
)
ByteSliceFromString returns a NUL-terminated slice of bytes containing the text of s. If s contains a NUL byte at any location, it returns (nil, EINVAL).
func ( string) ([]byte, error) {
	if strings.IndexByte(, 0) != -1 {
		return nil, EINVAL
	}
	 := make([]byte, len()+1)
	copy(, )
	return , nil
}
BytePtrFromString returns a pointer to a NUL-terminated array of bytes containing the text of s. If s contains a NUL byte at any location, it returns (nil, EINVAL).
func ( string) (*byte, error) {
	,  := ByteSliceFromString()
	if  != nil {
		return nil, 
	}
	return &[0], nil
}
ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any bytes after the NUL removed.
func ( []byte) string {
	if  := bytes.IndexByte(, 0);  != -1 {
		 = [:]
	}
	return string()
}
BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated at a zero byte; if the zero byte is not present, the program may crash.
func ( *byte) string {
	if  == nil {
		return ""
	}
	if * == 0 {
		return ""
	}
Find NUL terminator.
	 := 0
	for  := unsafe.Pointer(); *(*byte)() != 0; ++ {
		 = unsafe.Pointer(uintptr() + 1)
	}

	var  []byte
	 := (*unsafeheader.Slice)(unsafe.Pointer(&))
	.Data = unsafe.Pointer()
	.Len = 
	.Cap = 

	return string()
}
Single-word zero for use when we need a valid pointer to 0 bytes.