plan9syscall 特定 Go 代码中,没有 Stat_t 像其他 GOOSStat_t 或其等效定义在哪里?

最佳答案

TL;DR:这是 *syscall.Dir 类型。请继续阅读以了解详细信息。

Plan9 上 os.Stat 的来源是 here 。它调用定义为 heredirstat 。它将 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/

10-12 16:10