显然,syscall.Dup2它在ARM系统上不存在,syscall.Dup3在达尔文(OSX)上也不存在。例如,这意味着我可以syscall.Dup3在ARM和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)
}
Run Code Online (Sandbox Code Playgroud)
syscall_wrapper_arm.go
// +build !windows
// +build arm arm64
package mypkg
import (
"syscall"
)
func Dup2(oldfd int, newfd int) {
syscall.Dup3(oldfd, newfd, 0)
}
Run Code Online (Sandbox Code Playgroud)
必不可少的部分,例如被go build所使用// +build。有关如何使用它的详细信息,可以在这里找到:
| 归档时间: |
|
| 查看次数: |
35 次 |
| 最近记录: |