2
Julia中的系统信号拦截
在Linux下运行的Julia程序中,需要在调整控制台窗口大小时启动专用操作。那么在Julia中,我怎样才能截获系统信号SIGWINCH(调整窗口大小)并附加执行所需动作的功能呢? 在Ada中,声明它非常简单: protected Signalhandler is procedure Handlewindowresizing; pragma Attach_Handler (Handlewindowresizing, SIGWINCH); end Signalhandler; 基于方案思想的解决方案:我尝试使用C库进行SIGWINCH中断监视。 myLibrary.h void Winresize (void Sig_Handler()); myLibrary.c #include "myLibrary.h" #include <stdio.h> #include <stdlib.h> #include <signal.h> void Winresize(void sig_handler (void)) { signal(SIGWINCH, sig_handler); } 编译与图书馆准备 gcc -c -Wall -fPIC myLibrary.c gcc -shared -fPIC -o myLibrary.so myLibrary.o Julia中使用C库的程序: function …