go中无法读取utmpx文件

package main import ( "os" "fmt" ) func main() { fd, err := os.Open("/var/run/utmpx") fmt.Println(fd, err) var data []byte len, err := fd.Read(data) fmt.Println(len, err) } 

&{0xc42000a240}无

0零

没有错误,也没有数据。

从系统头文件中读取此路径/var/run/utmpx

如何获得这条道路是另一个问题

系统:macOS el capiton,go版本go1.8 darwin / amd64

**我的最终目标是将此文件读入go struct。**此文件包含系统用户信息。

我能这样做吗? 我会继续努力……

您可以使用ioutil.ReadFile函数:

 package main import ( "fmt" "io/ioutil" ) func main() { fd, err := ioutil.ReadFile("/var/run/utmpx") fmt.Println(string(fd), err) } 

原始代码中的问题是您读入的data长度为0个字节。 由于读取器接口只读取len(data)读取,因此它什么都不读。 更多内容: https : //golang.org/pkg/io/#Reader