在plan9
具体的 Go 代码中syscall
,没有Stat_t
与其他类似的GOOS
。在哪里Stat_t
定义,或其等价物?
问问题
161 次
1 回答
5
TL;DR:这是*syscall.Dir
类型。请继续阅读以了解详细信息。
os.Stat
关于 Plan9的来源在这里。它调用dirstat
,这里定义。dirstat
它提供into的返回值,该值在此处fileInfoFromStat
的同一文件中定义。
对于路径(而不是*File
对象),dirstat
只需调用syscall.Stat
,这基本上只是stat
. syscall.Stat
期望一个字节缓冲区能够写入。这个缓冲区被处理了一下(详见dirstat
),然后被送入syscall.UnmarshalDir
,这就是魔法发生的地方。文档声明它从缓冲区“解码单个 9P 统计消息”并返回一个*syscall.Dir
.
dirstat
然后将其传递*syscall.Dir
给fileInfoFromStat
,这是将其处理为FileInfo
. *syscall.Dir
正是通过对象Sys()
上的方法获得的这个值FileInfo
。
于 2016-02-22T09:24:07.927 回答