当前位置: 首页 > 面试题库 >

如何在Go中检测操作系统版本

晏经武
2023-03-14
问题内容

相对较新。似乎微不足道,但我不知道如何检测操作系统版本。我知道我可以使用runtime.GOOSruntime.GOARCH获得平台和体系结构,但是说我知道我在linux上,但是我想确定我是否在RH6上,而在RH7上,等等。


问题答案:

因此,至少在Linux上,软件包中确实存在这种晦涩的Uname方法syscall。它填充的结构有点笨拙,没有文档说明,但是您可以了解它的要点:

import (
    "fmt"
    "syscall"
)

// A utility to convert the values to proper strings.
func int8ToStr(arr []int8) string {
    b := make([]byte, 0, len(arr))
    for _, v := range arr {
        if v == 0x00 {
            break
        } 
        b = append(b, byte(v))
    }
    return string(b)
}

func main() {

    var uname syscall.Utsname
    if err := syscall.Uname(&uname); err == nil {
        // extract members:
        // type Utsname struct {
        //  Sysname    [65]int8
        //  Nodename   [65]int8
        //  Release    [65]int8
        //  Version    [65]int8
        //  Machine    [65]int8
        //  Domainname [65]int8
        // }

        fmt.Println(int8ToStr(uname.Sysname[:]), 
                    int8ToStr(uname.Release[:]), 
                    int8ToStr(uname.Version[:]))

    }
}

顺便说一句,这在操场上不起作用,可能是由于沙箱的限制,但是在Linux上起作用。尚未测试其他系统。



 类似资料:
  • 本文向大家介绍C#如何检测操作系统版本,包括了C#如何检测操作系统版本的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#检测操作系统版本的方法,供大家参考,具体内容如下 我们通过System.Environment.OSVersion.Version获得操作系统的版本号,然后再根据版本号进行判断操作系统是什么版本。 Version 类的属性 参考于:https://msdn.mic

  • 问题内容: 是否有检测操作系统默认语言的通用方法?(无论运行代码的操作系统是什么) 上面的代码在Linux下工作,在其他OS上工作吗? 问题答案: 您可以在模块中使用该功能。它以元组形式返回系统默认语言环境的语言代码和编码:

  • 问题内容: 我已经做了一些研究,但这个问题已经提出,但不是我打算的那样。我正在为QR登陆的客户端构建页面,这是一个下载应用程序的地方。因此,他不必在页面上打印2个QR码,我想检测当前的操作系统(Apple / Android / Other [不支持])并根据该值修改我的元素。 我已经看过脚本“ detectmobilebrowsers”,它的目的只是告诉用户是否完全可以移动,而我想弄清楚用户正在

  • 问题内容: 有谁知道我会怎么做才能检测到Windows在Python下的版本。我需要知道这是为Program Files使用正确的文件夹的一种方式。 非常感谢 问题答案: 模块 -访问基础平台的标识数据 在64位Windows上,32位Python返回: 这意味着 即使已接受此答案,也不正确。 请参阅以下一些答案,以了解可能适用于不同情况的选项。

  • 问题内容: 我要检查操作系统(在运行脚本的计算机上)。 我知道我可以在Linux 中使用它,但是它在控制台中给了我一条消息,我想写一个变量。 如果脚本可以告诉您它是Mac,Windows还是Linux,那就可以了。我该如何检查? 问题答案: 您可以使用: 具有比更好的粒度。 有关有效值,请参阅文档。

  • 问题内容: 我尝试使用下面的代码,但仅在Chrome和Mozilla中显示结果,而在IE6中不起作用。 输出: 我只需要获取版本“ Firefox / 12.0”。 问题答案: 检测浏览器的详细信息: 源JavaScript:浏览器名称 正在检测操作系统: 源JavaScript:OS检测。