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
7package os
8
9func 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