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 }