返回顶部
首页 > 资讯 > 后端开发 > GO >未定义:plan9 的 syscall.Stat_t
  • 239
分享到

未定义:plan9 的 syscall.Stat_t

2024-04-05 00:04:16 239人浏览 八月长安
摘要

大家好,今天本人给大家带来文章《未定义:plan9 的 syscall.Stat_t》,文中内容主要涉及到,如果你对golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢

大家好,今天本人给大家带来文章《未定义:plan9 的 syscall.Stat_t》,文中内容主要涉及到,如果你对golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

我正在为 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/ 下特定于操作系统的存储库。

  • 如何针对 linux 和 plan9 实现 os.fileinfo.sys 的操作系统特定转换


解决方案


This answer 极大地帮助了我的研究。简而言之,虽然 syscall 代码库已被破坏并移至 golang.org/x/sys/ 下的操作系统特定包中,但我们仍然使用 syscall.xxx 语义来访问 golang.org/x/sys/ 中的结构:

  • 对于 plan9,它是 Dir
var info os.fileinfo = ...
info.sys().(*syscall.dir)
  • 对于 linux,它是 Stat_t
var info os.fileinfo = ...
info.sys().(*syscall.stat_t)

为了将上述发现放入解决方案中,我遵循@torek的建议并创建了两个文件,每个文件都有 func getxid(info os.fileinfo) (string, string) 函数和 // +build <os> 指令顶部:

  • file_details_plan9.go
// +build plan9

package model
import (
    "syscall"
    "os"
)

func getxid(info os.fileinfo) (string, string) {
    uid := "n/a"
    gid := "n/a"
    if stat, ok := info.sys().(*syscall.dir); ok {
        uid = stat.uid
        gid = stat.gid
    }
    return uid, gid
}
  • file_details_unix.go
// +build linux

package model
import (
    "os"
    "strconv"
    "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
}

注意:标准 go 安装中似乎缺少 golang.org/x/sys/plan9 包,需要显式安装:

go get golang.org/x/sys/plan9
go mod vendor
go mod tidy

以上就是《未定义:plan9 的 syscall.Stat_t》的详细内容,更多关于的资料请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: 未定义:plan9 的 syscall.Stat_t

本文链接: https://lsjlt.com/news/596757.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 未定义:plan9 的 syscall.Stat_t
    大家好,今天本人给大家带来文章《未定义:plan9 的 syscall.Stat_t》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢...
    99+
    2024-04-05
  • 为什么我的window.dialogArguments未定义
    window.dialogArguments属性是用于访问打开当前窗口的窗口的传递参数。如果该属性未定义,可能有以下几种原因:1. ...
    99+
    2023-09-27
    定义
  • VB用户定义类型未定义如何解决
    当VB用户定义的类型未定义时,可能有以下几种解决方法:1. 检查代码中是否正确引用了相应的命名空间或模块。如果用户定义的类型是在一个...
    99+
    2023-08-08
    VB
  • Golang Gorm Fiber / argon2.Config 未定义
    php小编百草在使用Golang Gorm Fiber和argon2.Config时,可能会遇到"未定义"的问题。这个问题主要是由于缺少相应的定义或配置所导致的。要解决这个问题,我们需...
    99+
    2024-02-12
  • python自定义函数报错未定义怎么解决
    当你调用一个自定义函数时出现 "未定义" 的错误,可能是因为以下几个原因:1. 函数没有被正确定义:确保你在调用函数之前已经正确定义...
    99+
    2023-10-10
    python
  • Web3.0:重新定义互联网的未来
    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Web3.0:重新定义互联网的未来 Web3...
    99+
    2023-09-26
    web3 区块链
  • 嵌套结构属性未定义
    本篇文章向大家介绍《嵌套结构属性未定义》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。问题内容(之前链接的“答案”并未回答此问题。stackoverflow.com/questions/2...
    99+
    2024-04-05
  • C语言未定义行为分析
    这篇文章主要介绍“C语言未定义行为分析”,在日常操作中,相信很多人在C语言未定义行为分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言未定义行为分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!他在...
    99+
    2023-06-17
  • vb变量未定义如何解决
    如果在VB中出现变量未定义的错误,可以尝试以下几种方法解决:1. 定义变量:确保所有变量在使用之前都已经定义。可以使用`Dim`语句...
    99+
    2023-09-13
    vb
  • php未定义索引怎么解决
    当PHP代码中出现"未定义索引"的错误,通常有以下几种解决方法:1. 检查代码逻辑:首先需要检查代码中是否确实存在该索引。可能是代码...
    99+
    2023-10-18
    php
  • vue访问未定义的路由时重定向404问题
    目录vue访问未定义的路由时重定向404vue.js 重定向和404等等相关的问题?1. main.js文件2. app.vue文件3. home.vue文件4. notFound....
    99+
    2024-04-02
  • PHP报错:未定义常量的解决方法!
    PHP报错:未定义常量的解决方法! 在PHP编程中,我们经常会遇到常量未定义的错误。这种错误通常会在代码中使用未定义的常量时发生。本文将介绍常量的概念以及如何解决未定义常量的问题。 首先,让我们来了解什么是常量。在PHP中,常量是指一旦定义...
    99+
    2023-10-02
    php android android studio
  • JSON 对象未定义错误的解决方法
    要解决 JSON 对象未定义的错误,可以尝试以下几种方法:1. 确保引入了正确的 JSON 库: 在 JavaScript 中,要操...
    99+
    2023-08-15
    JSON
  • PHP坑 之 关联数组未定义键的使用
    在挖坑之前,请先允许我简单介绍一下场景。 我所在的项目组要重构一个项目,当时使用的是PHP5版本,要升级到PHP7。除了将PHP版本升级之外,同时要将自己开发的框架(不是很完善) 换成la...
    99+
    2024-02-27
  • Golang新特性解析:宏定义的未来展望
    由于本平台的编辑器限制,无法提供1500字的文章内容。以下是一个示例的文章开篇,重点讨论Golang中宏定义的未来展望,并包含具体的代码示例。 Golang新特性解析:宏定义的未来展...
    99+
    2024-02-29
    golang 未来展望 宏定义
  • 如何处理 PHP 函数中未定义的变量?
    在 php 中,处理未定义的函数变量主要有以下方法:1. 条件检查(isset() 或 empty());2. 默认值;3. 异常处理。这些方法确保未定义的变量不会中断程序执行。 如何...
    99+
    2024-05-03
    php 未定义变量
  • robotstudio软件处于未定义如何解决
    如果RobotStudio软件处于未定义状态,以下是一些可能的解决方法:1. 重新启动软件:尝试关闭并重新打开RobotStudio...
    99+
    2023-09-22
    robotstudio
  • php未定义索引数组怎么解决
    在PHP中,如果使用一个未定义的数组索引,就会出现未定义索引错误。在这种情况下,需要采取措施解决这个问题。本文将为您介绍几种解决php未定义索引数组的方法。 1.使用isset()函数检查数组索引是否存在 使用函数isset()可以检查一个...
    99+
    2023-08-31
    微信 php
  • php未定义索引问题怎么解决
    当出现"PHP未定义索引"问题时,可能有以下几种解决方法:1. 检查数组是否存在该索引:在访问数组元素之前,可以使用isset()函...
    99+
    2023-08-19
    php
  • matlab中randint函数未定义怎么解决
    在MATLAB中,randint函数是在较早的版本中使用的,现在已经被废弃。相反,您可以使用randi函数来生成随机整数。以下是使用...
    99+
    2023-08-11
    matlab randint
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作