unix – 在Go中获取文件inode
发布时间:2020-12-15 18:26:20 所属栏目:安全 来源:网络整理
导读:如何在Go中获取文件inode? 我已经可以这样打印了: file := "/tmp/system.log"fileinfo,_ := os.Stat(file)fmt.Println(fileinfo.Sys())fmt.Println(fileinfo) 看看Go实现,显然正在寻找一些stat方法,但我仍然无法找到Unix系统的结构定义. 如何直接获取inode
如何在Go中获取文件inode?
我已经可以这样打印了: file := "/tmp/system.log" fileinfo,_ := os.Stat(file) fmt.Println(fileinfo.Sys()) fmt.Println(fileinfo) 看看Go实现,显然正在寻找一些stat方法,但我仍然无法找到Unix系统的结构定义. 如何直接获取inode值? 源代码中的哪个文件定义了Sys()的结构?
您可以使用类型断言从fileinfo获取底层的syscall.Stat_t
package main import ( "fmt" "os" "syscall" ) func main() { file := "/etc/passwd" fileinfo,_ := os.Stat(file) fmt.Printf("fileinfo.Sys() = %#vn",fileinfo.Sys()) fmt.Printf("fileinfo = %#vn",fileinfo) stat,ok := fileinfo.Sys().(*syscall.Stat_t) if !ok { fmt.Printf("Not a syscall.Stat_t") return } fmt.Printf("stat = %#vn",stat) fmt.Printf("stat.Ino = %#vn",stat.Ino) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |