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