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

Programmatically get macOS version using golang

WBOY
Release: 2024-02-09 08:06:07
forward
469 people have browsed it

使用 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)
    }
}
Copy after login

Output on my computer:

sysname: Darwin
release: 22.3.0
macOS >= Big Sur: true
Copy after login

Reference://m.sbmmt.com/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!

source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template