当前位置: 首页 > 面试题库 >

Go中无法读取utmpx文件

徐智渊
2023-03-14
问题内容

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

我的最终目标是将此文件读入结构体中。此文件包含系统用户信息。

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


问题答案:

您可以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


 类似资料:
  • 读写文件是很多程序的基本任务,下面我们看看Go里面的文件读取。 package main import ( "bufio" "fmt" "io" "io/ioutil" "os" ) // 读取文件的函数调用大多数都需要检查错误, // 使用下面这个错误检查方法可以方便一点 func check(e error) { if e != nil {

  • 问题内容: 如何在go程序中读取xz文件?当我尝试使用阅读它们时,出现错误。 问题答案: 您有3个选择。 尝试另一个库,也许是使用cgo的库。我在这里看到两个。 直接使用cgo /创建自己的lib。 使用xz可执行文件。 选项三比听起来容易。这是我会用的: 此处可运行的代码:http : //play.golang.org/p/SrgZiKdv9a

  • 问题内容: 我想读取.bak文件,这些文件是ms sql数据库的备份文件。现在,我正在研究如何使用Sql Mngmnt studio读取这些文件。请帮帮我。谢谢 问题答案: 您可以使用SQL Management Studio将.BAK文件还原到临时数据库并读取它们! 这里的一些指针

  • 问题内容: 我在Go中找不到功能。我可以弄清楚如何快速编写一个,但是我只是想知道我是否在这里忽略了一些东西。如何逐行读取文件? 问题答案: _注意: 可接受的答案在早期的Go版本中是正确的。 包中有ReadLine函数。 请注意,如果该行不适合读取缓冲区,则该函数将返回不完整的行。如果要始终通过单次调用函数来读取程序中的整行,则需要将该函数封装到自己的函数中,该函数在for循环中进行调用。 之所以

  • 问题内容: 使用GoogleAppEngine(Go)读取文件的正确方法是什么? 在Java中,我读到了,是否有等效的功能? 问题答案: 您可以从App Engine上的文件中读取文件,也可以从计算机上运行的Go应用程序中的文件中读取文件。 注意事项: 您应该使用 相对 文件路径,而不是绝对路径。工作目录是应用程序的根文件夹(文件所在的位置)。 Go代码只能读取属于 应用程序 文件的文件,因此,如

  • 我正在尝试使用clojure创建一个简单的android应用程序,它可以读取csv文件,并允许用户对数据进行类似正则表达式的搜索。问题是,当我尝试读取数据时,会出现以下异常。 我的研究表明,这通常意味着Clojure正在寻找某样东西,但找不到。但是我不知道它可能是什么或者为什么。 下面是引发异常的Clojure代码: 据我所知,“kamus.csv”在正确的目录中,所以我不认为是这样。如果我在re