如何在Go中获取文件inode?
我已经可以这样打印了:
@H_404_3@file := "/tmp/system.log" fileinfo,_ := os.Stat(file) fmt.Println(fileinfo.Sys()) fmt.Println(fileinfo)看看Go实现,显然正在寻找一些stat方法,但我仍然无法找到Unix系统的结构定义.
如何直接获取inode值?
您可以使用类型断言从fileinfo获取底层的syscall.Stat_t
@H_404_3@package main
import (
"fmt"
"os"
"syscall"
)
func main() {
file := "/etc/passwd"
fileinfo,_ := os.Stat(file)
fmt.Printf("fileinfo.Sys() = %#v\n",fileinfo.Sys())
fmt.Printf("fileinfo = %#v\n",fileinfo)
stat,ok := fileinfo.Sys().(*syscall.Stat_t)
if !ok {
fmt.Printf("Not a syscall.Stat_t")
return
}
fmt.Printf("stat = %#v\n",stat)
fmt.Printf("stat.Ino = %#v\n",stat.Ino)
}