...

Source file src/pkg/os/sys_aix.go

     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	package os
     6	
     7	import "syscall"
     8	
     9	// gethostname syscall cannot be used because it also returns the domain.
    10	// Therefore, hostname is retrieve with uname syscall and the Nodename field.
    11	
    12	func hostname() (name string, err error) {
    13		var u syscall.Utsname
    14		if errno := syscall.Uname(&u); errno != nil {
    15			return "", NewSyscallError("uname", errno)
    16		}
    17		b := make([]byte, len(u.Nodename))
    18		i := 0
    19		for ; i < len(u.Nodename); i++ {
    20			if u.Nodename[i] == 0 {
    21				break
    22			}
    23			b[i] = byte(u.Nodename[i])
    24		}
    25		return string(b[:i]), nil
    26	}
    27	

View as plain text