Зарегистрируйте функцию, чтобы вызвать, когда MEX-функция очищается или MATLAB завершается
#include "mex.h" int mexAtExit(void (*ExitFcn)(void));
#include "fintrf.h" integer*4 mexAtExit(ExitFcn) subroutine ExitFcn()
Использовать mexAtExit
чтобы зарегистрировать функцию для вызова непосредственно перед очисткой MEX-функции или завершения MATLAB®. mexAtExit
предоставляет вашей MEX-функции возможность выполнять такие задачи, как освобождение постоянной памяти и закрытие файлов. Другие типичные задачи включают закрытие потоков или сокетов.
Каждая MEX-функция может регистрировать только одну активную выходную функцию за раз. Если вы звоните mexAtExit
более одного раза, тогда MATLAB использует ExitFcn
из более позднего mexAtExit
вызов в качестве выходной функции.
Если MEX-функция заблокирована, тогда вы не можете очистить файл MEX. Поэтому, если вы пытаетесь очистить заблокированный файл MEX, то MATLAB не вызывает ExitFcn
.
На языке Фортран объявите ExitFcn
как external
в стандартной программе ФОРТРАН, которая вызывает mexAtExit
если он не входит в возможности файла.
Внимание
В файлах MEX на C выдача исключения в ExitFcn
приводит к аварийному завершению работы MATLAB.