在 plan9
的 syscall
特定 Go 代码中,没有 Stat_t
像其他 GOOS
。 Stat_t
或其等效定义在哪里?
最佳答案
TL;DR:这是 *syscall.Dir
类型。请继续阅读以了解详细信息。
Plan9 上 os.Stat
的来源是 here 。它调用定义为 here 的 dirstat
。它将 dirstat
的返回值提供给 fileInfoFromStat
,它在同一个文件 here 中定义。
在路径的情况下(与 *File
对象相反), dirstat
只调用 syscall.Stat
,它基本上只是 stat
的薄包装。 syscall.Stat
期望一个字节缓冲区能够写入。这个缓冲区被处理了一点(详见 dirstat
),然后被送入 syscall.UnmarshalDir
,这就是魔法发生的地方。该文档指出它从缓冲区“解码单个 9P 统计消息”并返回 *syscall.Dir
。dirstat
然后将此 *syscall.Dir
传递给 fileInfoFromStat
,后者将其处理为 FileInfo
。这个 *syscall.Dir
值是通过 Sys()
对象上的 FileInfo
方法获得的。
关于go - plan9 的 Stat_t 在哪里定义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35545178/