Из приложения MATLAB GUI я запускаю внешнюю программу (консольное приложение в Windows), которая считывает данные из измерительной системы. Данные хранятся в нескольких файлах, которые обрабатываются приложением MATLAB сразу после завершения внешней программы. Проблема в следующем:
Внешняя программа, запущенная в командной строке, может быть изящно остановлена путем выдачи SIGINT (т. е. нажатием Ctrl + C). Обработчик сигнала перехватывает SIGINT и закрывает программу. Есть ли способ сделать это из приложения MATLAB GUI, нажав кнопку «Прервать»?
После многих часов поиска я наткнулся на http://www.caam.rice.edu/~wy1/links/mex_ctrl_c_trick/, который показывает, как обнаружить SIGINT в файле MEX. Разрешение MEX вызывать внешнюю программу может сработать (хотя я пока не уверен в деталях). Однако для остановки программы по-прежнему требуется Ctrl + C. Как я могу отправить SIGINT с помощью кнопки в моем графическом интерфейсе?