Maison  >  Article  >  développement back-end  >  Obtenez par programme la version de macOS en utilisant Golang

Obtenez par programme la version de macOS en utilisant Golang

WBOY
WBOYavant
2024-02-09 08:06:07390parcourir

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

l'éditeur php Banana vous apprend à utiliser la programmation golang pour obtenir la version macOS. Que vous développiez des applications macOS ou que vous effectuiez une administration système, il est important de connaître la version actuelle de votre système d'exploitation. Grâce à la programmation Golang, nous pouvons facilement obtenir les informations de version de macOS. Cet article explique comment utiliser Golang pour écrire du code afin d'obtenir la version macOS et comment exécuter le code sur le terminal pour afficher les résultats. Explorons ensemble ce sujet amusant et pratique !

Contenu de la question

Je souhaite obtenir la version macOS en golang. Je voulais principalement vérifier si macOS est >= Big Sur.

Trouvez le package goInfo. Mais il ne fournit pas les détails requis. J'ai essayé le package syscall mais la solution ne fonctionne que sous Linux.

Merci pour toute aide.

Solution

Utilisez unix.uname pour obtenir la distribution Darwin. D'après l'historique des versions de darwin, la version darwin correspondante de big sur est 20.x.x.

Voir la démo ci-dessous :

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)
    }
}

Sortie sur mon ordinateur :

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

Référence : https://www.php.cn/link/ec47951a847319d0dd4933431b5b2c0f

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer