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} nil
0 nil
没有错误,也没有数据。
从系统头文件中读取此路径/var/run/utmpx
。
如何获取此路径为another question
system:macOS el capiton,go go go.8.8 darwin / amd64
**我的最终目标是将此文件读入go结构。**此文件包含系统用户信息。
我可以这样做吗?我会继续尝试......
答案 0 :(得分:3)
您可以使用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