github.com/mattn/go@v0.0.0-20171011075504-07f7db3ea99f/src/os/sys_linux.go (about)

     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  // Linux-specific
     6  
     7  package os
     8  
     9  func hostname() (name string, err error) {
    10  	f, err := Open("/proc/sys/kernel/hostname")
    11  	if err != nil {
    12  		return "", err
    13  	}
    14  	defer f.Close()
    15  
    16  	var buf [512]byte // Enough for a DNS name.
    17  	n, err := f.Read(buf[0:])
    18  	if err != nil {
    19  		return "", err
    20  	}
    21  
    22  	if n > 0 && buf[n-1] == '\n' {
    23  		n--
    24  	}
    25  	return string(buf[0:n]), nil
    26  }