In the plan9 specific Go code for syscall, there is no Stat_t like with other GOOS. Where is Stat_t, or its equivalent defined?
为plan9定义Stat_t在哪里?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
dpn517111 2016-02-22 09:24关注TL;DR: It's the
*syscall.Dirtype. Read on for details.The source for
os.Staton Plan9 is here. It callsdirstat, which is defined here. It feeds the return value ofdirstatintofileInfoFromStat, which is defined in the same file here.In the case of paths (as opposed to
*Fileobjects),dirstatjust callssyscall.Stat, which is basically just a thin wrapper aroundstat.syscall.Statexpects a byte buffer to be able to write into. This buffer is processed a bit (seedirstatfor details), and then fed intosyscall.UnmarshalDir, which is where the magic happens. The documentation states that it "decodes a single 9P stat message" from a buffer and returns a*syscall.Dir.dirstatthen passes this*syscall.DirtofileInfoFromStat, which is what processes it into aFileInfo. It's this*syscall.Dirvalue that is obtained through theSys()method on theFileInfoobject.本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报