gpt4 book ai didi

go - 未定义:syscall.SIGURG在工作代码上

转载 作者:行者123 更新时间:2023-12-01 22:35:49 31 4
gpt4 key购买 nike

我是新来的,目前正在尝试了解同事编写的一些代码

go func() {
s := <-sigs
if s == syscall.SIGURG {
fmt.Println("received sigur")
} else {
log.Printf("RECEIVED SIGNAL: %s", s)
os.Exit(1)
}
}()
我同时使用GoLand和VSCode,并且这两个IDE在 if s == syscall.SIGURG {上报告错误
他们抛出 undefined: syscall.SIGURG问题是,我知道这段代码可在Debian上运行。所以我正在尝试为什么它在我的Windows计算机上不起作用
我虽然有所需的进口:
import ( 
"fmt"
"os"
"os/signal"
"syscall"
)

最佳答案

正如@Volker在评论中写道,Windows上不存在SIGURG。它存在于Debian之类的类Unix系统上。
我相信,如果您将代码更改为使用golang.org/x/sys/unix而不是syscall,则该行为对您而言将更加明显。 syscall软件包的Golang文档具有the following deprecation notice:

不推荐使用:此程序包已被锁定。调用者应改为使用golang.org/x/sys存储库中的相应软件包。这也是应该应用新系统或版本所需的更新的地方。有关更多信息,请参见https://golang.org/s/go1.4-syscall

还有用于Windows的 golang.org/x/sys/windows 软件包,它不包含SIGURG,因为Windows上不存在。

关于go - 未定义:syscall.SIGURG在工作代码上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63396105/

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