D(相当稀疏)的官方文档没有关于在*nx或Windows上处理系统信号的任何信息.
该system模块只有Endian和OS,syserror已被弃用/仅对Windows ERRORTEXT,并且signals是大约消息传递,而不是系统的信号.
是否有一种方法(在纯D中)安装信号处理程序,捕获并允许我在运行时对某些信号作出反应,或者至少是一种检测信号被接收的方法和我可以的异常catch?
即,在Python中,一个简单的例子是:
import signal
signal.signal(signal.SIGSEGV, myFunctionToHandleSEGV)
# ...
Run Code Online (Sandbox Code Playgroud)
它与C中的相同,只是导入而不是包含.找到一个看起来很有趣的C示例,然后更改#include<signal.h>为import core.stdc.signal;如果您只使用标准C signal函数,或者import core.sys.posix.signal;如果您使用的是Posix函数sigaction,那么请记住将回调标记(如果使用的话)extern(C)(在最近的版本中) D,@nogc nothrow也是),然后其余的代码应该像在C中一样编译为D.