Home  >  Article  >  Backend Development  >  Programmatically get macOS version using golang

Programmatically get macOS version using golang

WBOY
WBOYforward
2024-02-09 08:06:07439browse

使用 golang 以编程方式获取 macOS 版本

php editor Banana teaches you how to use golang programming to get the macOS version. Whether you are developing macOS applications or performing system administration, it is important to know your current operating system version. Using golang programming, we can easily obtain the version information of macOS. This article will introduce how to use golang to write code to get the macOS version, and how to run the code on the terminal to view the results. Let’s explore this fun and practical topic together!

Question content

I want to get the macOS version in golang. Mainly wanted to check if macOS is >= Big Sur.

Find the goInfo package. But it doesn't provide the required details. Tried the syscall package but the solution only works on Linux.

Thanks for any help.

Solution

Use unix.uname to obtain the darwin distribution. According to the release history of darwin, the corresponding darwin version of big sur is 20.x.x.

See demo below:

package main

import (
    "fmt"
    "strconv"
    "strings"

    "golang.org/x/sys/unix"
)

func main() {
    var uts unix.utsname
    if err := unix.uname(&uts); err != nil {
        panic(err)
    }

    sysname := unix.byteslicetostring(uts.sysname[:])
    release := unix.byteslicetostring(uts.release[:])

    fmt.printf("sysname: %s\nrelease: %s\n", sysname, release)

    if sysname == "darwin" {
        dotpos := strings.index(release, ".")
        if dotpos == -1 {
            fmt.printf("invalid release value: %s\n", release)
            return
        }

        major := release[:dotpos]
        majorversion, err := strconv.atoi(major)
        if err != nil {
            fmt.printf("invalid release value: %s, %v\n", release, err)
            return
        }
        fmt.println("macos >= big sur:", majorversion >= 20)
    }
}

Output on my computer:

sysname: Darwin
release: 22.3.0
macOS >= Big Sur: true

Reference:https://www.php.cn/link/ec47951a847319d0dd4933431b5b2c0f

The above is the detailed content of Programmatically get macOS version using golang. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete