在plan9特定于syscall的Go代码中,没有与其他GOOS一样的Stat_t。Stat_t或其等效的定义在哪里?
发布于 2016-02-22 09:24:07
TL;DR:这是*syscall.Dir类型。继续阅读,了解细节。
os.Stat on Plan9的源是这里。它调用dirstat,它被定义为这里。它将dirstat的返回值输入到fileInfoFromStat中,fileInfoFromStat是在同一个文件这里中定义的。
对于路径(相对于*File对象),dirstat只调用syscall.Stat,这基本上只是stat的一个薄包装。syscall.Stat期望一个字节缓冲区能够写入。这个缓冲区被处理了一点(详细信息见dirstat ),然后输入到syscall.UnmarshalDir中,而这正是奇迹发生的地方。文档指出,它从缓冲区中“解码单个9pstat消息”并返回一个*syscall.Dir。
然后,dirstat将此*syscall.Dir传递给fileInfoFromStat,fileInfoFromStat将其处理为FileInfo。这个*syscall.Dir值是通过Sys()方法在FileInfo对象上获得的。
https://stackoverflow.com/questions/35545178
复制相似问题