我正在为 9front/Plan9 开发文件管理器;开发工作在 64 位 Ubuntu 下的 Go v1.15 中完成,并通过交叉编译来构建 Plan9 二进制文件。
让我们假设一个函数来检索用户/组信息:
import "syscall"
func GetXid(info os.FileInfo) (string, string) {
UID := "N/A"
GID := "N/A"
if stat, ok := info.Sys().(*syscall.Stat_t); ok {
UID = strconv.Itoa(int(stat.Uid))
GID = strconv.Itoa(int(stat.Gid))
}
return UID, GID
}
它在使用 .Plan9 编译期间失败undefined: syscall.Stat_t
。
syscall
包页面声明它自 Go v1.4 以来已被弃用,并替换为golang.org/x/sys/
.
- 如何
os.FileInfo.Sys
为 Linux 和 Plan9实现特定于操作系统的转换