未定义:syscall.SIGURG 工作代码
undefined: syscall.SIGURG on a working code
我是新手,目前正在尝试理解同事编写的一些代码
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 在评论中所写,SIGURG
在 Windows 上不存在。它存在于 Unix-like 系统上,例如 Debian。
我相信如果您将代码更改为使用 golang.org/x/sys/unix
而不是 syscall
,这种行为对您来说会更加明显。 syscall
包的 Golang 文档有 the following deprecation notice:
Deprecated: this package is locked down. Callers should use the corresponding package in the golang.org/x/sys repository instead. That is also where updates required by new systems or versions should be applied. See https://golang.org/s/go1.4-syscall for more information.
还有 Windows 的包 golang.org/x/sys/windows
,它不包含 SIGURG
,因为它不存在于 Windows。
我是新手,目前正在尝试理解同事编写的一些代码
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 在评论中所写,SIGURG
在 Windows 上不存在。它存在于 Unix-like 系统上,例如 Debian。
我相信如果您将代码更改为使用 golang.org/x/sys/unix
而不是 syscall
,这种行为对您来说会更加明显。 syscall
包的 Golang 文档有 the following deprecation notice:
Deprecated: this package is locked down. Callers should use the corresponding package in the golang.org/x/sys repository instead. That is also where updates required by new systems or versions should be applied. See https://golang.org/s/go1.4-syscall for more information.
还有 Windows 的包 golang.org/x/sys/windows
,它不包含 SIGURG
,因为它不存在于 Windows。