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.Dir
type. Read on for details.The source for
os.Stat
on Plan9 is here. It callsdirstat
, which is defined here. It feeds the return value ofdirstat
intofileInfoFromStat
, which is defined in the same file here.In the case of paths (as opposed to
*File
objects),dirstat
just callssyscall.Stat
, which is basically just a thin wrapper aroundstat
.syscall.Stat
expects a byte buffer to be able to write into. This buffer is processed a bit (seedirstat
for 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
.dirstat
then passes this*syscall.Dir
tofileInfoFromStat
, which is what processes it into aFileInfo
. It's this*syscall.Dir
value that is obtained through theSys()
method on theFileInfo
object.本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报