Home | History | Annotate | Download | only in os
      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 }
     27