无法读取utmpx文件 [英] Can not read utmpx file in go

查看:178
本文介绍了无法读取utmpx文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 包主
$ b导入(
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>无n
blockquote>

没有错误,也没有数据。



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



如何获得此路径另一个问题



系统:macOS el capiton,go版本go1.8达尔文/ amd64



**我的最终目标是阅读文件中包含系统用户信息。



我可以这样做吗?我会继续尝试......

您可以使用 ioutil.ReadFile 函数来完成此操作:

>

  package main 

import(
fmt
io / ioutil

$ b $ func main(){
fd,err:= ioutil.ReadFile(/ var / run / utmpx)
fmt.Println(string(fd ),错误)
}

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


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

There is no error, also no data.

This path /var/run/utmpx is read from system header file.

How to get this path is another question

system: macOS el capiton, go version go1.8 darwin/amd64

**My final goal is to read this file into go struct.**This file contains system users infomation.

Can I do that ? I will keep trying...

解决方案

You can use the ioutil.ReadFile function for this:

package main

import (
    "fmt"
    "io/ioutil"
)

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

The problem in your original code is that you read into data that is 0 bytes long. Since the reader interface reads only reads up to len(data), it reads nothing. More on that: https://golang.org/pkg/io/#Reader

这篇关于无法读取utmpx文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆