jjzjj

go - 如何设置 SA_ONSTACK 标志

我的Go应用程序连接到IBMMQ。当我的应用程序抛出分段违规错误(信号SIGSEGV)时,IBMMQ注册的信号处理程序使我的应用程序抛出“没有SA_ONSTACK标志的非Go代码设置信号处理程序”。那么我该如何设置那个标志呢?我的代码packagemainimport("fmt""github.com/ibm-messaging/mq-golang/ibmmq")typeAstruct{Strstring}typeBstruct{Apointer*A}funcmain(){connectIBMMQ()b:=B{}fmt.Println(b.Apointer.Str)}const(QMg

c - SA_ONSTACK在sigaction中有什么用?

当信号被传递时,信号处理程序在进程的堆栈上执行。如果在sigaction()中使用SA_ONSTACK,则使用不同的堆栈。使用不同的栈有什么用?有任何用例示例吗? 最佳答案 备用堆栈的一种用途是尝试正确处理SIGSEGV。如果您的进程刚刚收到SIGSEGV因为它超出了它的堆栈限制,您不能在进程的堆栈上运行信号处理程序-它已经满了。在这种情况下,拥有备用堆栈可以让您(小心地)运行一些或多或少的正常关闭。 关于c-SA_ONSTACK在sigaction中有什么用?,我们在StackOver