Go 未定义:工作代码上的syscall.SIGURG

Go 未定义:工作代码上的syscall.SIGURG,go,system-calls,Go,System Calls,我是新来的,目前正在尝试理解一位同事编写的一些代码 go func(){ s:=正如@Volker在评论中写道的那样,SIGURG在Windows上不存在。它存在于类似Unix的系统上,比如Debian 我相信,如果您将代码更改为使用golang.org/x/sys/unix而不是syscall,您会发现这种行为更加明显。syscall包的golang文档包括: 不推荐使用:此程序包已锁定。调用者应使用存储库中相应的程序包。这也是应用新系统或版本所需更新的位置。有关详细信息,请参阅 还有一个Wi

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

go func(){

s:=正如@Volker在评论中写道的那样,
SIGURG
在Windows上不存在。它存在于类似Unix的系统上,比如Debian

我相信,如果您将代码更改为使用
golang.org/x/sys/unix
而不是
syscall
,您会发现这种行为更加明显。
syscall
包的golang文档包括:

不推荐使用:此程序包已锁定。调用者应使用存储库中相应的程序包。这也是应用新系统或版本所需更新的位置。有关详细信息,请参阅


还有一个Windows软件包,它不包括
SIGURG
,因为它在Windows上不存在。

Windows没有SIGURG。不可能模拟它吗?否则我将从现在开始在Debian上双重启动。你能把它写为一个应答而不是命令吗,所以我接受它吗?如果你的主要用户是操作系统是Windows,您可以使用WSL否,您不能“模拟”不存在的信号。您可以做的是:在xyz_linux.go文件中保护该段代码,并使用单独的xyz_Windows.go,该文件提供相同的API(但不使用SIGURG)。或者干脆停止使用Windows:-)我将使用WSL,直到我能在Debian上编码!这是正确的答案。我只想补充一点,我将使用@marco.m提到的WSL,直到我能像我应该的那样在Debian上编码。