gpt4 book ai didi

go - 如何在 Go 中使用 OS 或 Arch 特定代码

转载 作者:IT王子 更新时间:2023-10-29 01:25:39 26 4
gpt4 key购买 nike

显然,syscall.Dup2 在 ARM 系统上不存在,syscall.Dup3 在 darwin (OSX) 上不存在。这意味着我可以在 ARM 上使用 syscall.Dup3,在其他平台上使用 syscall.Dup2

我该怎么做?

最佳答案

为每个独特的代码配置编写一个包装器源文件。

PS:我认为 Windows 既不支持 Dup2 也不支持 Dup3

syscall_wrapper.go

// +build !windows
// +build !arm
// +build !arm64

package mypkg

import (
"syscall"
)

func Dup2(oldfd int, newfd int) {
syscall.Dup2(oldfd, newfd)
}

syscall_wrapper_arm.go

// +build !windows
// +build arm arm64

package mypkg

import (
"syscall"
)

func Dup2(oldfd int, newfd int) {
syscall.Dup3(oldfd, newfd, 0)
}

例如 go build 使用的基本部分是 //+build 部分。可以在此处找到有关如何使用它的详细信息:

关于go - 如何在 Go 中使用 OS 或 Arch 特定代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55785908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com