...

Source file src/pkg/cmd/vendor/golang.org/x/sys/unix/syscall.go

     1	// Copyright 2009 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
     6	
     7	// Package unix contains an interface to the low-level operating system
     8	// primitives. OS details vary depending on the underlying system, and
     9	// by default, godoc will display OS-specific documentation for the current
    10	// system. If you want godoc to display OS documentation for another
    11	// system, set $GOOS and $GOARCH to the desired system. For example, if
    12	// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS
    13	// to freebsd and $GOARCH to arm.
    14	//
    15	// The primary use of this package is inside other packages that provide a more
    16	// portable interface to the system, such as "os", "time" and "net".  Use
    17	// those packages rather than this one if you can.
    18	//
    19	// For details of the functions and data types in this package consult
    20	// the manuals for the appropriate operating system.
    21	//
    22	// These calls return err == nil to indicate success; otherwise
    23	// err represents an operating system error describing the failure and
    24	// holds a value of type syscall.Errno.
    25	package unix // import "golang.org/x/sys/unix"
    26	
    27	import "strings"
    28	
    29	// ByteSliceFromString returns a NUL-terminated slice of bytes
    30	// containing the text of s. If s contains a NUL byte at any
    31	// location, it returns (nil, EINVAL).
    32	func ByteSliceFromString(s string) ([]byte, error) {
    33		if strings.IndexByte(s, 0) != -1 {
    34			return nil, EINVAL
    35		}
    36		a := make([]byte, len(s)+1)
    37		copy(a, s)
    38		return a, nil
    39	}
    40	
    41	// BytePtrFromString returns a pointer to a NUL-terminated array of
    42	// bytes containing the text of s. If s contains a NUL byte at any
    43	// location, it returns (nil, EINVAL).
    44	func BytePtrFromString(s string) (*byte, error) {
    45		a, err := ByteSliceFromString(s)
    46		if err != nil {
    47			return nil, err
    48		}
    49		return &a[0], nil
    50	}
    51	
    52	// Single-word zero for use when we need a valid pointer to 0 bytes.
    53	var _zero uintptr
    54	

View as plain text