c - 等待信号 MEX 功能
问题描述
我正在尝试为 MATLAB 创建一个 MEX 函数,它只会等待 UNIX 信号。
这是我写的代码:
void sigHandler(void)
{
sigset_t set;
int sig;
sigemptyset(&set);
if(sigaddset(&set, SIGUSR2) == -1)
perror("sigaddset error");
sigprocmask(SIG_BLOCK, &set, NULL);
if(sigwait(&set, &sig) == -1)
perror("sigwait failed\n");
return;
}
/* The gateway function */
void mexFunction(int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
sigHandler();
return;
}
当我执行此函数时,它正在工作,但是在将 SIGUSR2 发送到 MATLAB 进程后,MATLAB 崩溃了。
知道为什么吗?
解决方案
推荐阅读
- spring - 如何在 Spring Boot 中允许空的 MultipartFile?
- r - 如何将 JSON 转换为数据框
- python - Snakemake 通配符
- php - 为什么phpMailer给我错误:不能在写上下文中使用函数返回值
- python - python SQL like 运算符需要从 SQL 列表中返回匹配项
- java - 为什么我无法在我的代码中导入其他包?
- windows - 通过自定义模式打开 Flutter 应用程序窗口
- java - 更改 quarkus hibernate 中的模式
- windows - libtorch 在 Windows 10 (VS2019) 上构建后抛出 c10::error
- kotlin - Kotlin 强制显式注释参数名称?@Foo(>>栏<< = 42)