Где Stat_t определен для plan9?

В plan9 конкретный код Go для syscall, здесь нет Stat_t как с другими GOOS, Где Stat_tили его эквивалент определен?

1 ответ

Решение

TL;DR: это *syscall.Dir тип. Читайте дальше для деталей.

Источник для os.Stat на Plan9 здесь. Это вызывает dirstat, который определен здесь. Он возвращает возвращаемое значение dirstat в fileInfoFromStat, который определен в том же файле здесь.

В случае путей (в отличие от *File объекты), dirstat просто звонки syscall.Stat, который в основном просто тонкая обертка вокруг stat, syscall.Stat ожидает, что байтовый буфер сможет писать в. Этот буфер немного обрабатывается (см. dirstat для деталей), а затем подается в syscall.UnmarshalDir, где происходит волшебство. В документации говорится, что она "декодирует одно сообщение статистики 9P" из буфера и возвращает *syscall.Dir,

dirstat затем проходит это *syscall.Dir в fileInfoFromStat что и превращает его в FileInfo, Именно это *syscall.Dir значение, которое получается через Sys() метод на FileInfo объект.

Другие вопросы по тегам